最近给vivo做的设备需要连接MES生产内网,要求机器根据心跳包返回值来同步服务器时间。而这一步操作需要在上位机程序中执行,也就是在Qt中调用命令行或者更改配置文件来设置系统时间。
树莓派更改系统时间的方法很多,在这里我介绍两种比较方便的:
① 使用命令行:sudo date --s=“2020-11-28 14:30:00”
② 编写shell脚本,通过调用shell脚本执行命令行。
新建"systime.sh"脚本,在脚本中写入:
#! bin/bash
sudo date --s="2020-11-28 14:30:00"
exit 0
// exit 0表示脚本下执行完后自动关闭脚本文件
Qt中如何使用这两种方法来实现通过程序更改系统时间呢,在网上搜索后找到了如下两种方法:
① 使用Linux中的system()函数,这个函数需要引用stdlib.h头文件。在system函数中写入字符串形式的命令行,即可执行对应的终端命令,比如system(“sudo reboot”),那么树莓派就会重新启动。或者通过命令行运行脚本system(“systime.sh”)就会运行systime.sh脚本,然后执行脚本里的内容。
但是如果使用system的方式更改系统时间会有一个问题&#