%% options
copyright owner = Dirk Krause
copyright year = 2015-xxxx
license = bsd
%% header
/** @file
File statistics (using stat() and
lstat() functions, dkChar).
For a portable (both Windows and non-Windows) check whether a file
is a symbolic link, reparse point... use the dk4_file_info_t
data type from dk4fileit.h and the functions from dk4filei.h.
CRT on Windows: Required.
*/
#include "dk4statt.h"
#ifndef DK4ERROR_H_INCLUDED
#include "dk4error.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/** Retrieve information about a file using stat/stat64/_stat64.
@param dst Structure to fill with information.
@param path File name.
@param erp Error report, may be NULL.
@return 1 on success, 0 on error.
Error codes:
- DK4_E_INVALID_ARGUMENTS
if dst or path is NULL,
- DK4_E_SYSTEM
with errno value stored in iDetails1 if the stat() function fails.
*/
int
dk4stat(dk4_stat_t *dst, const dkChar *path, dk4_er_t *erp);
/** Retrieve information about a file using lstat/lstat64.
@param dst Structure to fill with information.
@param path File name.
@param erp Error report, may be NULL.
@return 1 on success, 0 on error.
Error codes:
- DK4_E_NOT_SUPPORTED
if there is no support for lstat(),
- DK4_E_INVALID_ARGUMENTS
if dst or path is NULL,
- DK4_E_SYSTEM
with errno value stored in iDetails1 if lstat() fails.
*/
int
dk4stat_l(dk4_stat_t *dst, const dkChar *path, dk4_er_t *erp);
#ifdef __cplusplus
}
#endif
%% module
#include "dk4statd.h"
#include "dk4stat8.h"
#include "dk4statw.h"
int
dk4stat(dk4_stat_t *dst, const dkChar *path, dk4_er_t *erp)
{
#if DK4_CHAR_SIZE > 1
return (dk4stat_wc(dst, path, erp));
#else
return (dk4stat_c8(dst, path, erp));
#endif
}
int
dk4stat_l(dk4_stat_t *dst, const dkChar *path, dk4_er_t *erp)
{
#if DK4_CHAR_SIZE > 1
return (dk4stat_l_wc(dst, path, erp));
#else
return (dk4stat_l_c8(dst, path, erp));
#endif
}