原创 SylixOS下的系统时间设置

2015-7-4 13:46 1465 18 18 分类: 软件与OS

/**************命令行下的系统时间设置******************/

    SylixOS中的时钟分为系统时钟和硬件时钟,在其对应的shell命令也是两个不同的命令datehwclock

    Sylixos设备的控制台中输入help date命令,会得到该命令的使用方法

[root@sylixos_station:/apps]# help date
set system current time.
eg. date -s 23:28:25
   date -s 20110217
date [-s {time | date}]

使用help hwclock也可以得到hwclock的使用方法。

    我们先对系统时间进行设置,首先使用date命令查看当前的系统时间

 

[root@sylixos_station:/]# date
Sat Jun 27 11:50:39 2015     /*  可以看到当前的系统时间  */

我们将时间更改下,这么分开设置了时间和日期

 

[root@sylixos_station:/]# date -s 22:02:12
Sat Jun 27 22:02:12 2015
[root@sylixos_station:/]# date -s 20120222
Wed Feb 22 22:02:21 2012

     可以看到当前时间是2012222220221秒,此时使用hwclock查看rtc时间,

 

[root@sylixos_station:/]# hwclock --show
Sun Jun 07 11:57:29 2015  /* 时间仍然是设置前的时间,与系统时间并不一致*/

   再执行同步命令,会发现当前硬件时间与系统时间保持了一致。

 

[root@sylixos_station:/]# hwclock --systohc
[root@sylixos_station:/]# hwclock --show
Thu Feb 02 22:05:36 2012

/**************程序中的系统时间设置******************/

       对系统时间的操作使用POSIX的函数clock_gettimeclock_settime就可以进行设置,这里给出一个简单的实例,首先读取当前时间,随后将系统时间增加一天,并写入硬件时钟。

 

以下是代码片段:
void setting_time(void){

    struct timespec stime;
    if( clock_gettime( CLOCK_REALTIME, &stime) == -1 ) {
           perror( "getclock" );
    }
    /*
     * 增加一天
     */
    stime.tv_sec += (60*60)*24L;
    stime.tv_nsec = 0;
    if( clock_settime( CLOCK_REALTIME, &stime) == -1 ) {
           perror( "setclock" );
    }
    /*
     *将系统时间同步到rtc上。
     */
    sysToRtc();

 

文章评论0条评论)

登录后参与讨论
我要评论
0
18
关闭 站长推荐上一条 /2 下一条