我知道我们可以使用clock_gettime(CLOCK_MONOTONIC)
。
我尝试问的问题是,如果我需要从纪元开始以毫秒为单位的时间,那将是一个巨大的数字。
例如:
13438461673
这样13438461673 * 1000000000
我如何将其放入64位整数中?
CLOCK_MONOTONIC
是从任意时代开始的,实际上在Linux和Linux中,随计算机和每次引导的不同而不同。您只应使用它来测量间隔,即
(int64_t)(after.tv_sec - before.tv_sec) * (int64_t)1000000000UL
+ (int64_t)(after.tv_nsec - before.tv_nsec)
。对于时间戳记,请使用CLOCK_REALTIME
,因为它使用的是1970-01-01 00:00:00 UTC纪元。int64_t
可以处理CLOCK_REALTIME
纳秒级的时间戳–
(int64_t)(t.tv_sec) * (int64_t)1000000000 + (int64_t)(t.tv_nsec)
–至少从1679年到2261年;范围是±292年,而不是±145年。
-名义动物
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句