为了账号安全,请及时绑定邮箱和手机立即绑定

在Linux上使用QT设置系统时钟

在Linux上使用QT设置系统时钟

喵喵时光机 2021-04-09 13:10:32
我们将如何使用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)。


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 555 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信