2010-05-26 59 views
2

我可以使用struct tm和time(),localtime(),asctime()获取系统时间,但是我需要关于如何使用c程序设置系统时间的帮助。使用c库函数的系统时间设置

+0

什么操作系统? – 2010-05-26 19:40:48

+0

linux操作系统。 – neo730 2010-05-27 05:24:18

回答

4

,如果你不希望执行shell命令即可(如你所提到的)使用settimeofday,我会通过阅读MAN page,或找一些例子

这里开始是一个例子:

#include <sys/time.h> 
#include <stdio.h> 
#include <errno.h> 

int main(int argc, char *argv[]) 
{ 
    struct timeval now; 
    int rc; 

    now.tv_sec=866208142; 
    now.tv_usec=290944; 

    rc=settimeofday(&now, NULL); 
    if(rc==0) { 
     printf("settimeofday() successful.\n"); 
    } 
    else { 
     printf("settimeofday() failed, " 
     "errno = %d\n",errno); 
     return -1; 
    } 

    return 0; 
} 

无耻扯下从IBMs documentation,该struct timeval结构持有秒钟,UTC 00:00:00(Unix纪元时间)1970年1月1日号(作为long)加微秒数(作为long)。所以你需要计算这些数字来设定时间。你可以使用这些helper functions,以更好地处理与timeval结构的处理。

+0

再次感谢卢克... 对不起,bcoz我忘了基本.....看看MAN页面。 – neo730 2010-05-27 05:22:36

+0

经常这些天我只是使用谷歌搜索手册页(除非我在那里在终端),通常“我感觉幸运”搜索指甲每次只要你输入男人'查询'。如果您使用的是Firefox或Chrome,则只需将其输入到地址栏即可。 – luke 2010-05-27 16:31:44

+0

tv_usec实际上是微秒而不是毫秒 – Zaid 2017-11-03 14:18:27