使用c库函数设置系统时间

neo*_*730 3 c

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

luk*_*uke 7

如果你不想执行一个 shell 命令,你可以(如你所提到的)使用 settimeofday,我会先阅读MAN 页面,或者寻找一些例子

这是一个例子:

#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;
}
Run Code Online (Sandbox Code Playgroud)

IBM 的文档中无耻地翻录,该struct timeval结构保存了自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元时间)以来的秒数(作为 a long)加上微秒数(作为 a long)。因此,您需要计算这些数字以设置时间。您可以使用这些辅助函数来更好地处理 timeval 结构。