Linux/Unix/Posix 是否为用户空间应用程序提供 API 以访问单调递增的时钟,精度为厘秒到毫秒?
在 Linux 上,/proc/uptime 提供基于字符串的浮点数表示系统已启动的秒数。
gettimeofday(2) 不提供单调递增的时钟。
我可以在 ITIMER_REAL 时域中使用 getitimer(2),将计时器设置为在(取决于平台的)最大值开始并忽略生成的信号,但根据手册页,计时器可以运行的最长时间约为 100 天,其中比我预期的运行时间短。
将 POSIXclock_gettime()
函数与CLOCK_MONOTONIC
. 有关详细信息,请参见手册页。
有clock_gettime:
struct timespec tp;
clock_gettime(CLOCK_MONOTONIC, &tp);