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