Commit 811eeef7 authored by amir zamani's avatar amir zamani Committed by GitHub

update os.h to fix filesize() on older win32

_fstat() always fails under older 32bit WinXP/Win2003 targets.

_filelength() just works for both WinXP SDK and later Win7+ 32bit targets.
parent 1f1f6a5f
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#endif #endif
#include <sys/types.h> #include <sys/types.h>
#include <io.h>
#elif __linux__ #elif __linux__
...@@ -204,9 +205,9 @@ inline size_t filesize(FILE *f) ...@@ -204,9 +205,9 @@ inline size_t filesize(FILE *f)
return st.st_size; return st.st_size;
#else //windows 32 bits #else //windows 32 bits
struct _stat st; long ret = _filelength(fd);
if (_fstat(fd, &st) == 0) if (ret >= 0)
return st.st_size; return static_cast<size_t>(ret);
#endif #endif
#else // unix #else // unix
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment