我在Windows中发现了一个有趣的问题,它允许我使Windows时钟(但不是硬件时钟)快速运行 - 每分钟多达8秒。我正在做一些背景研究,以确定Windows如何计算和更新它的内部时间(而不是它如何与NTP服务器同步)。任何人提供的任何信息或您可以指向我的任何文件将不胜感激!
另外,如果有人知道_ftime如何运作,请告诉我。
答案 0 :(得分:3)
This MSDN article简要介绍了系统时间的处理方式:“系统首次启动时,会根据计算机的实时时钟将系统时间设置为一个值,然后定期更新时间。”另一个有趣的功能是GetSystemTimeAdjustment,可以这样说:
值为TRUE [对于lpTimeAdjustmentDisabled]表示禁用了周期性时间调整。在每个时钟中断时,系统仅将时钟中断之间的间隔添加到时钟时钟。然而,该系统是免费的,可以使用其他技术调整其时钟。当进行调整时,这些其他技术可能会导致时钟显着跳跃。
最后,关于_ftime,它似乎是使用GetSystemTimeAsFileTime实现的。所以它会直接包装到与其他地方一样的内置时间设施上。
答案 1 :(得分:3)
关于_ftime()
如何运作:
如果安装了Microsoft Visual C ++,则可能还安装了C运行时源代码。 _ftime()
和%ProgramFiles%\Microsoft Visual Studio <version>\VC\crt\src\ftime.c
中定义了ftime64.c
。
答案 2 :(得分:0)
_ftime根本不使用GetSystemTimeAsFileTime。 只需阅读源代码。