目前,我可以借助诸如localtime()
gettimeofday()
etc之类的功能接收当前日期时间time.h
假设用户修改 Linux 中的日期和时间设置以将日期更改为以前的日期,当我调用上述函数时,我得到了这些更改。
我仍然想获得当前时间,即说今天的时间,无论任何用户更改系统日期和时间设置。
有什么办法可以达到同样的效果吗?
如果具有适当权限的用户更改系统时间,则系统相信新值。
所以,你能得到别人对正确时间的看法的唯一方法就是走出系统。例如,您可以通过 NTP 协议连接到时间服务器。
对于一个便宜而愉快的解决方案,您可以获取一个网页,例如http://www.whattimeisit.com/。当然,下载延迟(充其量)是不准确的,这是 NTP 客户端巧妙处理的事情之一。
如果您想要的不是“正确”时间,而只是在您使用它时不会跳来跳去的时间,那么您可以clock_gettime
专门研究CLOCK_MONOTONIC
.
如果它与系统时间不同步,您可以查看硬件时钟,查看hwclock 手册页。
该页面上的注释部分也有一些关于如何检查同步的信息。