Linux提供了stime(2)调用来设置系统时间。但是,虽然这将更新系统时间,但不会将BIOS硬件时钟设置为与新系统时间匹配。
Linux系统通常会在关机时并定期将硬件时钟与系统时间同步。但是,如果在这些自动同步之一之前重启机器,则重新启动机器的时间将不正确。
设置系统时间时,如何确保更新硬件时钟?
查看rtc手册页以获取详细信息,但是如果您以root用户身份登录,则如下所示:
#include <linux/rtc.h> #include <sys/ioctl.h> 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 */ }; int fd; struct rtc_time rt; /* set your values here */ fd = open("/dev/rtc", O_RDONLY); ioctl(fd, RTC_SET_TIME, &rt); close(fd);