gpt4 book ai didi

linux - 将linux时间设置为毫秒精度

转载 作者:IT王子 更新时间:2023-10-29 00:50:48 25 4
gpt4 key购买 nike

我有一个嵌入式 Linux 设备,它通过串行通信协议(protocol)与另一个“主”设备连接。主设备定期将其日期传递给从设备,因为稍后从设备会将信息返回给需要准确加盖时间戳的主设备。但是,Linux 的“date”命令只能将系统日期设置为秒级精度。这对我们的用途来说是不够的。

有人知道如何将 Linux 机器的时间设置为比 1 秒更精确吗?

最佳答案

其他答案中给出的settimeofday(2)方法有一个严重的问题:它完全按照你说的去做。 :)

即时直接更改系统时间的问题在于,如果调整为负值,它可能会混淆获取更改前后时间的程序。也就是说,他们可以感知时间倒退。

解决此问题的方法是 adjtime(3),它简单且可移植,或者 adjtimex(2) 复杂、强大且特定于 Linux。这两个调用都使用复杂的算法在一段时间内缓慢调整系统时间,仅向前调整,直到实现所需的更改。

顺便说一句,你确定你不是reinventing wheel这里?我建议您阅读 Julien Ridoux 和 Darryl Veitch 的 ACM 队列论文 Principles of Robust Timing over the Internet .您在嵌入式系统上工作,所以我希望图 5 中的铃声会让您不寒而栗。你能说“阻尼振荡器”吗? adjtime()adjtimex() 使用了这个麻烦的算法,所以在某种意义上我在反对我上面的建议,但是 Mills 算法仍然比步长调整好非算法。如果您选择实现 RADclock,那就更好了。

关于linux - 将linux时间设置为毫秒精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com