我可以使用 struct tm 和 time(),localtime(),asctime() 获取系统时间。但是我需要有关如何使用 c 程序设置系统时间的帮助。
如果你不想执行一个 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 结构。