From: <dan...@ya...> - 2001-02-19 21:16:53
|
--- Earnie Boyd <ear...@ya...> wrote: > David, > > Can you debug what this problem might be, please? > > Earnie. > If __MSVCRT__ is not defined, then not only will wrong file size be output but also wrong file time, because of difference typedef for _dev_t in sys/types: Try this, with and without the #undef __MSVCRT__ #undef __MSVCRT__ #include <sys/types.h> #define _MSVCRT__ #include <sys/stat.h> #include <stdio.h> #include <windows.h> static DWORD get_file_size (char *name) { HANDLE h; WIN32_FIND_DATA buf; DWORD ret = 0; h = FindFirstFileA (name, &buf); if (h) { if (buf.nFileSizeHigh == 0) ret = buf.nFileSizeLow; FindClose (h); } return ret; } int main( ) { struct _stat buf; int result; /* Get data associated with "stat.c": */ result = _stat( "test_stat.c", &buf ); /* Check if statistics are valid: */ if( result != 0 ) perror( "Problem getting information" ); else { /* Output some of the statistics: */ printf( "File size from stat: %ld\n", buf.st_size ); printf( "Time modified : %s", ctime( &buf.st_atime ) ); } printf("get_file_size: %d\n", get_file_size ("test_stat.c")); return 1; } Danny _____________________________________________________________________________ http://invites.yahoo.com.au - Yahoo! Invites - Organise your Mardi Gras party online! |