当前位置:  开发笔记 > 运维 > 正文

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

如何解决《如何在Linux上以编程方式设置硬件时钟?》经验,为你挑选了2个好方法。

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

Linux系统通常将硬件时钟与关机时的系统时间以及定期间隔同步.但是,如果机器在其中一个自动同步之前重新启动电源,则机器重新启动时的时间将不正确.

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



1> Zan Lynx..:

查看rtc手册页了解详细信息,但如果您以root身份登录,则执行以下操作:

#include 
#include 


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



2> Kristopher J..:

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

system("/sbin/hwclock --systohc");

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


请注意,如果您的rtc设置为使用UTC时间,则需要添加`--utc`或`--localtime`.
推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有