Linux提供了stime(2)调用以设置系统时间。然而,虽然这将更新系统的时间,但它不会将BIOS硬件时钟设置为与新的系统时间匹配。
Linux系统通常在关机和周期性间隔中同步硬件时钟与系统时间。然而,如果机器在自动同步之前断电,那么当机器重新启动时时间将是不正确的。
如何确保在设置系统时间时更新硬件时钟?
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);
hwclock
程序的源代码。 - Zan Lynx在调用 stime() 函数之后,需要执行以下操作:
system("/sbin/hwclock --systohc");
请参阅hwclock(8)手册以获取更多信息。
我建议先阅读hwclock的源代码。
如果文本编辑器不同于kubuntu(默认编辑器为Kate),请在终端中使用sudo
命令使用您自己的编辑器。
sudo kate /etc/default/rcS
,然后按EnterUTC=yes
更改为UTC=no