https://www.cnblogs.com/mathyk/p/10141572.html
一、啓動外部程序的兩種方式:
(1)一體式:
void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)
外部程序啓動後。將隨主程序的退出而退出。
QProcess::execute("mkdir /userdata");
區別在於start()是非阻塞的,而execute()是阻塞的。專業點講,execute()=start()+waitforFinished()。
(2)分離式:void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0)
外部程序啓動後,當主程序退出時並不退出。而是繼續執行。
startDetached 可用來更新應用程序
APP結束前startDetached啓動引導程序更新可執行文件並執行
以上命令正常用法不支持帶空格
解決方法:http://qiusuoge.com/12038.html
一種方式是使用system()函數,但是此函數沒有返回值,有時不太方便,
system("ifconfig eth0 2.0.0.23");
另一種方式是使用上面接口第二個參數 QStringlist
QProcess p(0);
p.start("cmd", QStringList()<<"/c"<<"ping www.baidu.com");
p.waitForStarted();
p.waitForFinished();