首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Linux上以编程方式设置硬件时钟?

如何在Linux上以编程方式设置硬件时钟?
EN

Stack Overflow用户
提问于 2008-10-14 17:43:06
回答 4查看 27K关注 0票数 12

Linux提供stime(2)调用来设置系统时间。但是,虽然这将更新系统的时间,但它不会将BIOS硬件时钟设置为与新的系统时间匹配。

Linux系统通常在关机时以周期性间隔将硬件时钟与系统时间同步。但是,如果机器在其中一个自动同步之前进行电源循环,则当机器重新启动时,时间将不正确。

如何确保在设置系统时间时硬件时钟得到更新?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-14 17:59:44

有关详细信息,请查看rtc手册页,但如果您以root身份登录,则如下所示:

代码语言:javascript
运行
复制
#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);
票数 16
EN

Stack Overflow用户

发布于 2008-10-14 17:43:14

在调用stime()之后,执行以下操作:

代码语言:javascript
运行
复制
system("/sbin/hwclock --systohc");

有关更多信息,请参阅hwclock(8)手册页。

票数 8
EN

Stack Overflow用户

发布于 2008-10-14 17:48:49

我还想指出,硬件时钟只在一定程度上是准确的(我曾见过一些系统每天会丢失/增加几秒钟)。

您是否考虑过设置网络时间守护程序来根据时间服务器同步您的时钟?

诚然,这种同步直到守护进程启动后才会发生,因此保持硬件时钟同步也有助于在加电和时间守护进程与时间服务器进行同步之间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/202116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档