【发布时间】:2012-05-28 21:54:38
【问题描述】:
ifconfig | grep 'inet'
通过终端执行时正在工作。但不是通过 QProcess
我的示例代码是
QProcess p1;
p1.start("ifconfig | grep 'inet'");
p1.waitForFinished();
QString output(p1.readAllStandardOutput());
textEdit->setText(output);
textedit 上没有显示任何内容。
但是当我在 qprocess 开始时只使用 ifconfig 时,输出会显示在 textedit 上。我是否错过了构造命令 ifconfig | grep 'inet' 的任何技巧,例如将 \' 用于 ' 和 \| 用于 |?对于特殊字符?但我也试过了:(
【问题讨论】:
-
您需要为 ifconifg 指定完整路径。你的应用程序有不同的 PATH 变量然后你终端
-
@KamilKlimek 因为这可能是单个命令的问题,在这种情况下,命令管道(QProcess 不支持)是真正的问题。
-
对!完全忘记了那个
-
如果要获取ipaddress,请使用正确的方式:qt-project.org/doc/qt-4.8/qnetworkinterface.html
标签: c++ linux qt terminal pipe