【发布时间】:2015-01-25 18:56:24
【问题描述】:
我正在使用 QProcess 来连接 wifi 网络。但是当我尝试使用 6 个参数的代码时,它失败了,没有返回任何输出。
如果我在终端中执行命令,它开箱即用:nmcli dev wifi con "myssid" password "myssidpassword"
QStringList arguments{"dev", "wifi", "con", "\"myssid\"", "password", "\"myssidpassword\""};QProcess *process = new QProcess;
process->start("nmcli", arguments);
process->waitForFinished();
return process->readAll();
我做错了什么?谢谢。
PD:如果我使用 2 个参数执行其他 nmcli,它可以工作。
【问题讨论】:
-
为什么ssid和密码要加双引号?
-
因为某些 wifi 网络在 ssid 中有一个空间,如果我需要连接其中一个,如果我不加引号,该命令会将 ssid 的第二个单词解释为 nmcli 参数.
-
这在 shell 引用方面绝对有效,但这是 C++!
-
我试过不带引号但 QBytearray 正在处理->readAll();返回“”
标签: linux networking qt5 qprocess