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