mirror of
https://github.com/lifegpc/c-utils.git
synced 2026-07-08 01:30:39 +08:00
Fix bug in time_util::time_ns, add a fixed bit version
This commit is contained in:
@@ -73,7 +73,7 @@ size_t time_util::time_ns() {
|
|||||||
FILETIME ft;
|
FILETIME ft;
|
||||||
GetSystemTimeAsFileTime(&ft);
|
GetSystemTimeAsFileTime(&ft);
|
||||||
size_t t = ((size_t)ft.dwHighDateTime << 32) | (size_t)ft.dwLowDateTime;
|
size_t t = ((size_t)ft.dwHighDateTime << 32) | (size_t)ft.dwLowDateTime;
|
||||||
return t;
|
return t * 100;
|
||||||
#elif HAVE_CLOCK_GETTIME
|
#elif HAVE_CLOCK_GETTIME
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
@@ -83,6 +83,21 @@ size_t time_util::time_ns() {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int64_t time_util::time_ns64() {
|
||||||
|
#if _WIN32
|
||||||
|
FILETIME ft;
|
||||||
|
GetSystemTimeAsFileTime(&ft);
|
||||||
|
int64_t t = ((int64_t)ft.dwHighDateTime << 32) | (int64_t)ft.dwLowDateTime;
|
||||||
|
return t * 100;
|
||||||
|
#elif HAVE_CLOCK_GETTIME
|
||||||
|
struct timespec ts;
|
||||||
|
clock_gettime(CLOCK_REALTIME, &ts);
|
||||||
|
return ts.tv_sec * 1000000000LL + ts.tv_nsec;
|
||||||
|
#else
|
||||||
|
return (int64_t)time(NULL) * 1000000000LL;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
size_t time_time_ns() {
|
size_t time_time_ns() {
|
||||||
return time_util::time_ns();
|
return time_util::time_ns();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
#if _WIN32
|
#if _WIN32
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#if __cplusplus
|
#if __cplusplus
|
||||||
|
|
||||||
@@ -20,6 +21,7 @@ namespace time_util {
|
|||||||
long get_timezone();
|
long get_timezone();
|
||||||
time_t timegm(struct tm* tm);
|
time_t timegm(struct tm* tm);
|
||||||
size_t time_ns();
|
size_t time_ns();
|
||||||
|
int64_t time_ns64();
|
||||||
int mssleep(unsigned int ms);
|
int mssleep(unsigned int ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user