1
0
mirror of https://github.com/ioacademy-jikim/debugging synced 2025-06-09 08:56:15 +00:00
debugging/03_day/check-0.10.0/lib/gettimeofday.c
2015-12-13 22:34:58 +09:00

29 lines
692 B
C

#include "libcompat.h"
#include <errno.h>
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define EPOCHFILETIME (116444736000000000i64)
#else
#define EPOCHFILETIME (116444736000000000LL)
#endif
int gettimeofday(struct timeval *tv, void *tz)
{
#if _MSC_VER
union
{
__int64 ns100; /*time since 1 Jan 1601 in 100ns units */
FILETIME ft;
} now;
GetSystemTimeAsFileTime(&now.ft);
tv->tv_usec = (long)((now.ns100 / 10LL) % 1000000LL);
tv->tv_sec = (long)((now.ns100 - EPOCHFILETIME) / 10000000LL);
return (0);
#else
// Return that there is no implementation of this on the system
errno = ENOSYS;
return -1;
#endif /* _MSC_VER */
}