在Linux中使用C设置系统日期和时间
我正在开发一个跨平台应用程序,它将系统日期和时间更改为指定值.我已经完成了
Windows的部分.
如何从Linux中的C程序设置系统日期和时间?我正在寻找类似于SetSystemTime(SYSTEMTIME& x)的功能. 据我所知,settimeofday()对日期没有任何作用,我不确定函数stime()的用法.我希望mktime()与我的需求无关. 有谁能够帮我. 解决方法
你理解错了.
settimeofday(2)正在设置
Epoch time.这是日期和时间.阅读
time(7)
因此,如果从表示日期的字符串开始,将该字符串与strptime(3)转换为struct tm,然后将其转换为带有mktime(3)的Unix时间,然后将其转换为settimeofday(即tv_sec字段). 但是,settimeofday需要root权限,我相信你通常应该避免调用它.最好在Linux PC上设置一些NTP客户端服务(例如,运行ntpd或chrony,更常见的是阅读keeping time上的系统管理员章节……).另见adjtimex(2) 顺便说一句,在multi-tasking系统(如Linux或Windows)上突然改变系统时间是一项非常危险的操作(因为它会根据或使用时间来扰乱和干扰许多系统任务).这样做的理由很少(一般来说这是一个非常糟糕的主意).如果你这样做,那就用很少的程序做到这一点.运行的服务(例如single user mode Linux).你不应该在普通的应用程序代码中这样做. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |