首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >命令在终端中工作,但不是通过QProcess

命令在终端中工作,但不是通过QProcess
EN

Stack Overflow用户
提问于 2012-05-22 19:52:06
回答 2查看 27.1K关注 0票数 21
代码语言:javascript
复制
ifconfig | grep 'inet'

在通过终端执行时正在工作。但不是通过QProcess

我的示例代码是

代码语言:javascript
复制
QProcess p1;
p1.start("ifconfig | grep 'inet'");
p1.waitForFinished();
QString output(p1.readAllStandardOutput());
textEdit->setText(output);

textedit上没有显示任何内容。

但是,当我在qprocess的开头只使用ifconfig时,输出就会显示在文本编辑上。在构造命令ifconfig | grep 'inet'时,我是否遗漏了什么技巧,比如对'使用\',对|使用\|?对于特殊字符?但我也试过了:

EN

回答 2

Stack Overflow用户

发布于 2012-05-22 19:58:51

QProcess对象不会自动为您提供完整的shell语法:您不能使用管道。使用shell来执行此操作:

代码语言:javascript
复制
p1.start("/bin/sh -c \"ifconfig | grep inet\"");
票数 9
EN

Stack Overflow用户

发布于 2012-05-22 20:01:34

似乎不能在QProcess中使用管道符号。

但是,有一个setStandardOutputProcess方法可以将输出通过管道传递到下一个进程。

API中提供了一个示例。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10701504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档