您的位置:首页 > 运维架构 > Linux

linux时间(二 设置系统时间)

2010-08-31 16:28 211 查看
/*******************

设置系统时间

********************/

#include<time.h>

int stime(long * time)

这个函数可以用于设置系统时间,但是从参数可见,要让保存的时间是一个long类型的指针。

所以需要将年月日的时间换算成从1900年到现在的秒数。下面这个函数做这个工作。

time_t mktime(struct tm * time)

将时间结构数据转换成经过的秒数

例如下面这个例子

//重置系统时间
extern int set_write_time_bgstage( int set_time[])
{

if (set_time == NULL)
{
printf("error in write_time_bgstage : time == NULL/n");
return -1;
}

time_t t;
struct tm current_time;

current_time.tm_year = set_time[0] - 1900;
current_time.tm_mon = set_time[1] - 1;
current_time.tm_mday = set_time[2];
current_time.tm_hour = set_time[3];
current_time.tm_min = set_time[4];
current_time.tm_sec = 0;
current_time.tm_isdst = -1;

t = mktime(¤t_time);
stime(&t);

system("hwclock -w");
return 0;
}

注意:使用stime不能真正的修改系统时间,当重新启动计算机之后,可以观察到修改无效。因为stime没有将

时间写入CMOS.要写入bois需要调用 hwclock -w 程序

ps:cmos 是电脑主板上的一块可读写的RAM芯片。因为可读写的特性,所以在电脑主板上用来保存BIOS设置完电脑硬件参数后的数据,这个芯片仅仅是用来存放数据的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: