10.05 更新时钟

首先,更新系统时间要求程序具有相应的权限,即 CAP_SYS_TIME

settimeofday 允许我们以 timeval 结构体表示的时间设置系统时间,不过,虽然它的精度很高,但是我们的计时器不一定能够达到这么高的精度,因此在微秒级设定的时间也可能是不准确的。

stime 类似,但是只能设置秒级时间。

adjtime 函数则是可以减慢或者加快始终速度,从而温和地完成时间调整。不过 adjtime 在执行的时间里可能无法完成所有的时间调整,这个时候剩余未修改的时间将保存在第二个参数中。(settimeofday 可能会突然改变系统时间,从而使得依赖绝对时间戳工作的程序不能正常运行,比如数据库或者 make。)