避免使用gettimeofday()API

时间:2014-04-30 08:58:06

标签: c timer linux-kernel linux-device-driver embedded-linux

gettimeofday()与RTC硬件相关。

有人可以建议我们如何在应用程序编程中避免使用它。 我们如何使用System ticks?

提前感谢!

1 个答案:

答案 0 :(得分:1)

为了获得时间,您可能希望使用times()

然而,不清楚这些滴答是否是从启动时间开始测量的。

From man times:

  

返回值

     

times()返回自a以来经过的时钟滴答数   过去的任意点。 [...]

     

[...]

     

注意

     

在Linux上,"过去的任意点"从中返回   测量的times()值在内核版本中有所不同。上   Linux 2.4及更早版本就是系统启动的时刻。   从Linux 2.6开始,这一点是(2 ^ 32 / HZ) - 300(即大约429   在系统启动时间之前的几百万秒。这种可变性   内核版本(以及跨UNIX实现),结合使用   事实上,返回值可能溢出clock_t的范围,意味着   便携式应用程序最好避免使用此值。   要衡量已用时间的变化,请改用clock_gettime(2)

使用clock_gettitme()计时器使用CLOCK_BOOTTIME阅读此内容可能是更安全,更便携的方式。如果此功能和/或计时器可用于没有RTC的系统,我不确定。鼓励其他人澄清这一点。