目前我能够与功能的帮助下获得当前日期时间像localtime()
gettimeofday()
等从time.h
如何获得正确的时间在Linux中
假设用户修改Linux中的日期和时间设置更改日期到以前的某个日期,当我调用上述功能时,我会得到这些更改。
我仍然想获得当前时间,即今天的时间,而不管任何用户更改系统日期&时间设置。
有什么办法可以达到同样的效果吗?
目前我能够与功能的帮助下获得当前日期时间像localtime()
gettimeofday()
等从time.h
如何获得正确的时间在Linux中
假设用户修改Linux中的日期和时间设置更改日期到以前的某个日期,当我调用上述功能时,我会得到这些更改。
我仍然想获得当前时间,即今天的时间,而不管任何用户更改系统日期&时间设置。
有什么办法可以达到同样的效果吗?
如果具有适当权限的用户更改系统时间,则系统会相信新值。
因此,让别人看到正确时间的唯一方法就是走出系统。例如,您可以通过NTP协议连接到时间服务器。
对于便宜而愉快的解决方案,您可以抓取一个网页,如http://www.whattimeisit.com/。 (最好)下载延迟是不准确的,这是NTP客户巧妙处理的问题之一。
如果你想要的不是“正确”的时间,只是在你使用它的时候没有跳过的时间,那么你可以看看clock_gettime
,特别是CLOCK_MONOTONIC
。
如果它不同步到系统时间,你可以看看读取硬件时钟,看看hwclock man page。
该页面上的注释部分有关于如何检查同步的一些信息。
你不能,系统时间是系统时间,如果它改变,那么它改变。另外,如何确保_which_时间是正确的,然后是更新之前或之后的时间? – 2013-03-27 11:32:22
然后而不是从您的系统读取从某个在线服务器读取。 – 2013-03-27 11:32:49
一些Linux系统使他们的系统时间和日期作为标准服务被称为daytime.servinfo = getservbyname(“daytime”,“tcp”);'从像谷歌。如果你需要,我可以为你写一个简单的tcp客户端。 – 2013-03-27 11:37:13