从c程序

时间:2016-09-27 05:17:28

标签: c linux

我想从c程序设置/更改系统的时间。我在互联网上搜索了很多但没有找到任何满意的结果。我在settimeofday上有一个llok但它需要从1970年1月1日00:00:00 UTC开始经过几秒和几微秒。

但是我希望我可以明确地给出日期,年份,月份,小时,分钟和秒,并设置UTC时间。

是否有任何c库函数或任何其他可用的机制?

1 个答案:

答案 0 :(得分:1)

  1. 将时间以YYMMDDhhss格式放入struct time。您可以忽略星期几日期字段。将负值放入tm_isdst以让系统决定DST当天是否生效。
  2. 使用指向mk_time的指针调用struct time - 它将填充结构中缺少的字段,并将time_t设置返回到此日期。
  3. settimeofday()struct timeval中的返回值一起使用(根据您的喜好选择μs部分)。对时区参数使用“NULL”。
  4. 请注意,您需要具有适当的(root)权限来设置系统时间,并且还要注意settimeofday在Linux上有一些特殊的特性,因此完全建议您阅读手册页

    显然,以上所有内容都需要time.h包含在你的程序中。