我们将如何使用QT小部件应用程序以编程方式更改linux系统上的系统时间?
2 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
您不能在纯Qt中做到这一点。您需要使用Linux(或POSIX)特定的东西。
而且您可能不应该这样做,但是最好将整个系统配置为使用NTP(例如,通过运行某些NTP客户端...)。大多数Linux发行版已经具有该功能。
如果您确实要设置系统时间(但是您不应该 直接 从Qt应用程序中设置系统时间,因为Qt应用程序不应以root用户身份运行,但请参见this),请先读取time(7),然后阅读adjtimex(2)和settimeofday(2 )
为此,您需要是root用户,因此您不应在Qt应用程序中执行此操作。您可以使用setuid技术以root身份运行某些特定的命令或程序。Setuid棘手(请参阅凭据(7),execve(2),setreuid(2) ...),如果滥用(可能容易出错),可能会打开一个巨大的安全漏洞,因此请阅读有关Linux编程的知识,例如,ALP。
因此,如果您坚持要这样做(这可能是错误的),请为此使用C编写一个小的特定程序,并将其设置为setuid,然后从您的Qt应用程序中运行该setuid程序(例如,使用QProcess)。
- 2 回答
- 0 关注
- 555 浏览
添加回答
举报
0/150
提交
取消