QProcess
默认不会启动一个 shell 来解析命令,而是直接调用操作系统的系统调用来启动外部程序。也就是通过fork一个子线程或者exec一个子进程来执行命令。
QProcess的参数模式
QProcess
需要明确指定命令的可执行文件路径或参数列表。
如果命令是一个可执行文件的路径(例如 /usr/bin/rfcomm
),可以直接使用该路径。
如果命令是一个简单的命令名(例如 rfcomm
),QProcess
会尝试在系统的环境变量 PATH
中查找可执行文件。
显式启动一个 Shell
可以显式启动一个 shell,并通过 shell 来解析和执行命令。
process.start("/bin/sh", QStringList() << "-c" << "rfcomm watch hci0 &");
传递参数列表