当前位置:  技术问答>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。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 真心求助:各位大哥能帖一个 socket 程序的例子吗?(要是多线程序的),分少了开帖再加!谢谢!
  • 真心求教一个make zImage 问题 急!!!
  • 在linux下面怎么安程序啊?我刚裝了一个 linux,下了一个迅雷安装程序,可是不知道怎么安装啊?真心请教。
  • 真心需要各位前辈指点,谢谢 有关LINUX USB驱动程序编写的一个问题
  • 真心请教Linux kernel进入Suspend问题
  • 大侠们来一下,真心求教个问题,急~~
  • 小弟真心求教学习LINUX的步骤


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3