システムのミリ秒単位の時間を取得したい(リアルタイムかどうかは気にしない、できるだけ正確にしたい)。これは良い方法ですか?
#ifdef WIN32
unsigned long long freq;
unsigned long long get_ms_time() {
LARGE_INTEGER t;
QueryPerformanceCounter(&t);
return t.QuadPart / freq;
}
#else
unsigned long long get_ms_time() {
struct timespec t;
clock_gettime(CLOCK_MONOTONIC, &t);
return t.tv_sec * 1000 + t.tv_nsec / 1000000;
}
#endif
この値を signed int にラップするにはどうすればよいですか? これを試してみたところ、次のような負の値が得られました(Linuxでは、Windowsではわかりません):
~ start
-2083002438
~ 15 seconds after..
-2082987440
~ 15 seconds after..
-2082972441
私はこのようなものになります。~ 開始 X ~ 15 秒後.. X + 14998 ~ 15 秒後.. X + 29997
X は正の数です。(出力を正にして増加させたい)