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);
