process.start("cmd.exe",args); process.waitForStarted(); process.write("echo 98 > /sys/class/gpio/export;echo high > /sys/class/gpio/gpio98/direction;echo 99 > /sys/class/gpio/export;cat /sys/class/gpio/gpio99/value\n");代码中process.write为什么会执行两遍,如何制止
时间: 2023-08-14 17:08:46 浏览: 102
程序只能运行一次,防止程序重复执行。
4星 · 用户满意度95%
根据你提供的信息,我看到这段代码是在 Qt 中使用 QProcess 类执行的,其中 process 是 QProcess 类的一个实例对象。如果你多次调用 process.write 方法,那么每次调用都会向子进程的标准输入写入数据。因此,如果你执行了多次 process.write 方法,那么子进程就会接收到多个相同的命令并执行多次。如果你只想执行一次命令,可以将这段代码放在一个函数中,然后只调用一次该函数。
另外,如果你想要确保 process.write 方法只会执行一次,可以使用信号与槽机制。例如,在调用 process.waitForStarted 方法之前,可以连接 QProcess 类的 finished 信号到一个槽函数上,在槽函数中调用 process.write 方法,这样就可以确保 process.write 方法只会在子进程执行完成后执行一次。
阅读全文