eglibc:获取正常运行时间(毫秒)



我想写一个与内核日志格式相同的日志输出:

[   11.947248] fsl-gianfar ffe24000.ethernet eth0: Link is Up

时间戳应该与内核时间具有相同的时间引用。这意味着,当在内核中同时发出日志消息时,时间戳应该具有相同的值。

clock_gettime有一个未定义的时钟起始点,因此每个程序的时间戳都有不同的值,即使它们是在同一时间创建的:

clock_gettime(CLOCK_REALTIME, &ts);
clock_gettime(CLOCK_MONOTONIC, &ts);

当使用gettimeofday时,您可以获得自Unix时代以来的时间。。。其在定义上不匹配。

函数localtime()返回正常运行时间,但粒度以秒为单位,但我需要更多。。。


更新:似乎clock_gettime(CLOCK_REALTIME, &ts)应该做我想做的事。。。而eglibc似乎返回CCD_ 5。

首先要找到CLOCK_MONOTONIC的偏移量。只需阅读/proc/uptime一次即可。然后使用偏移量和CLOCK_MONOTONIC打印每个记录事件的时间。

相关内容

  • 没有找到相关文章

最新更新