C中差异较大的系统时间如何设置

问题描述 投票:0回答:0

我正在开发 NTP v4 客户端,我想知道如何相应地调整系统时间。

我发现

adjtime(3)
基本上将系统时钟的速度调整了一定量,因此系统时钟慢慢接近传递给函数的
delta

但是该函数的联机帮助页指出:

adjtime()
用于对系统时间进行小幅调整。大多数系统对可以用增量指定的调整施加限制。在 glibc 实现中,delta 必须小于或等于 (INT_MAX / 1000000 - 2) 且大于或等于 (INT_MIN / 1000000 + 2)(在 i386 上分别为
2145
-2145
秒)。

这意味着我无法在 i386 系统上对未来或过去的系统时间进行超过

35.75
分钟的调整。

但我也想处理系统时间不同步超过

35.75
分钟或小时、天或年的情况,而不会导致正在运行的应用程序行为异常。

c time libc
© www.soinside.com 2019 - 2024. All rights reserved.