Linux提供stime(2)调用来设置系统时间.然而,虽然这会更新系统的时间,但它并没有设置BIOS硬件时钟来匹配新的系统时间.
Linux系统通常将硬件时钟与系统时间在关机时间和周期性间隔进行同步.但是,如果在这些自动同步之一之前机器重新启动电源,则机器重新启动时间将不正确.
设置系统时间时,如何确保硬件时钟更新?
解决方法
查看rtc手册页的详细信息,但是如果您以root身份登录,则会这样:
struct rtc_time { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; /* unused */ int tm_yday; /* unused */ int tm_isdst;/* unused */ }; struct rtc_time rt; /* set your values here */ fd = open("/dev/rtc",O_RDONLY); ioctl(fd,RTC_SET_TIME,&rt); close(fd);