0

目前,我可以借助诸如localtime() gettimeofday()etc之类的功能接收当前日期时间time.h

假设用户修改 Linux 中的日期和时间设置以将日期更改为以前的日期,当我调用上述函数时,我得到了这些更改。

我仍然想获得当前时间,即说今天的时间,无论任何用户更改系统日期和时间设置。

有什么办法可以达到同样的效果吗?

4

3 回答 3

8

就您的计算机而言,系统时间当前时间。

如果您不能相信您所在的系统能够提供准确的时间,您可能需要考虑将NTP 客户端嵌入到您的程序中。

于 2013-03-27T11:31:25.090 回答
2

如果具有适当权限的用户更改系统时间,则系统相信新值。

所以,你能得到别人对正确时间的看法的唯一方法就是走出系统。例如,您可以通过 NTP 协议连接到时间服务器。

对于一个便宜而愉快的解决方案,您可以获取一个网页,例如http://www.whattimeisit.com/。当然,下载延迟(充其量)是不准确的,这是 NTP 客户端巧妙处理的事情之一。

如果您想要的不是“正确”时间,而只是在您使用它时不会跳来跳去的时间,那么您可以clock_gettime专门研究CLOCK_MONOTONIC.

于 2013-03-27T11:35:38.917 回答
0

如果它与系统时间不同步,您可以查看硬件时钟,查看hwclock 手册页

该页面上的注释部分也有一些关于如何检查同步的信息。

于 2013-03-27T11:37:37.337 回答