当前位置: 技术问答>linux和unix
真心求助!!!mktime() 和 settimeofday使用方法!
来源: 互联网 发布时间:2017-05-24
本文导语: 以下是我自己写的一个设置系统时间的函数 但是运行结果mktime() 函数得到的秒数一直是-1,所以settimeofday函数返回值一直是-1, 请求高手看一下我的代码哪里出了问题!! (注:datetime_t 是我自己定义的一个结构体...
以下是我自己写的一个设置系统时间的函数
但是运行结果mktime() 函数得到的秒数一直是-1,所以settimeofday函数返回值一直是-1,
请求高手看一下我的代码哪里出了问题!!
(注:datetime_t 是我自己定义的一个结构体,和tm的结构一样,通过这个参数传递进来我自己设定的时间)
void set_system_time(datetime_t ptime)
{
struct tm * stime;
struct timeval tv;
time_t timep,timeq;
int rec;
time(&timep);
stime = localtime(&timep);
stime->tm_sec = ptime.second;
stime->tm_min = ptime.minute;
stime->tm_hour = ptime.hour;
stime->tm_mday = ptime.day;
stime->tm_mon = ptime.month;
stime->tm_year = ptime.year;
timeq = mktime(stime);
tv.tv_sec = (long)timeq;
printf("the second: %ld",tv.tv_sec);
tv.tv_usec = 0;
rec = settimeofday(&tv,NULL);
if(rec tm_mon = ptime.month - 1;
stime->tm_year = ptime.year - 1900;
用man mktime查看帮助,得到如下信息:
tm_mday The day of the month, in the range 1 to 31.
tm_mon The number of months since January, in the range 0 to 11.
tm_year The number of years since 1900.
说明tm_year的0值是对应于1900年。
另外修改系统时间是需要管理员权限的,修改完成后最好立即用hwclock命令更新到RTC。
但是运行结果mktime() 函数得到的秒数一直是-1,所以settimeofday函数返回值一直是-1,
请求高手看一下我的代码哪里出了问题!!
(注:datetime_t 是我自己定义的一个结构体,和tm的结构一样,通过这个参数传递进来我自己设定的时间)
void set_system_time(datetime_t ptime)
{
struct tm * stime;
struct timeval tv;
time_t timep,timeq;
int rec;
time(&timep);
stime = localtime(&timep);
stime->tm_sec = ptime.second;
stime->tm_min = ptime.minute;
stime->tm_hour = ptime.hour;
stime->tm_mday = ptime.day;
stime->tm_mon = ptime.month;
stime->tm_year = ptime.year;
timeq = mktime(stime);
tv.tv_sec = (long)timeq;
printf("the second: %ld",tv.tv_sec);
tv.tv_usec = 0;
rec = settimeofday(&tv,NULL);
if(rec tm_mon = ptime.month - 1;
stime->tm_year = ptime.year - 1900;
用man mktime查看帮助,得到如下信息:
tm_mday The day of the month, in the range 1 to 31.
tm_mon The number of months since January, in the range 0 to 11.
tm_year The number of years since 1900.
说明tm_year的0值是对应于1900年。
另外修改系统时间是需要管理员权限的,修改完成后最好立即用hwclock命令更新到RTC。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。