#include #include #define stat64_to_stat(buf64, buf) \ do { \ buf->st_dev = (buf64)->st_dev; \ buf->st_ino = (buf64)->st_ino; \ buf->st_mode = (buf64)->st_mode; \ buf->st_nlink = (buf64)->st_nlink; \ buf->st_uid = (buf64)->st_uid; \ buf->st_gid = (buf64)->st_gid; \ buf->st_rdev = (buf64)->st_rdev; \ buf->st_size = (_off_t)(buf64)->st_size; \ buf->st_atime = (time_t)(buf64)->st_atime; \ buf->st_mtime = (time_t)(buf64)->st_mtime; \ buf->st_ctime = (time_t)(buf64)->st_ctime; \ } while (0) int CDECL _tstat(const _TCHAR* path, struct _stat * buf) { int ret; struct __stat64 buf64; ret = _tstat64(path, &buf64); if (!ret) stat64_to_stat(&buf64, buf); return ret; } int CDECL _tstati64(const _TCHAR* path, struct _stati64 * buf) { int ret; struct __stat64 buf64; ret = _tstat64(path, &buf64); if (!ret) stat64_to_stat(&buf64, buf); return ret; } #ifndef _UNICODE int CDECL _fstat(int fd, struct _stat* buf) { int ret; struct __stat64 buf64; ret = _fstat64(fd, &buf64); if (!ret) stat64_to_stat(&buf64, buf); return ret; } int CDECL _fstati64(int fd, struct _stati64* buf) { int ret; struct __stat64 buf64; ret = _fstat64(fd, &buf64); if (!ret) stat64_to_stat(&buf64, buf); return ret; } #endif