0

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

[   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似乎又回来CLOCK_MONOTONIC了。

4

1 回答 1

0

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

于 2015-11-26T14:01:43.860 回答