相关疑难解决方法(0)

Qprocess混淆了我的linux命令(我认为).怎么修?

我需要强制我的c ++ QT4应用程序从linux命令读取结果.我正在尝试使用Qprocess但是一旦我的命令变得复杂,它就会以某种方式混乱(只是猜测)并且不起作用.

在这里,我尝试为yu做一个小例子:

QProcess process;
command = "ls -l | grep a | sort";
qDebug() << "Execute command -> "+command;
process.start( command );
process.waitForFinished(-1);
QString processStdout = process.readAllStandardOutput();
QString processStderr = process.readAllStandardError();
qDebug() << "Std out -> "+processStdout;
qDebug() << "Std err -> "+processStderr;
Run Code Online (Sandbox Code Playgroud)

这将打印:

Execute command -> ls -l | grep a | sort
"Std out -> " 
"Std err -> ls: |: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果从consol中删除,将正确打印文件名.

如果我用更简单的方式替换command = "ls -l";comman , 那么它可以顺利工作.操作系统在标准错误中返回错误.

因此,我猜测用于命令的Qstring会以某种方式被操纵.关于wht发生的任何想法?

c++ linux qt qprocess

3
推荐指数
1
解决办法
2625
查看次数

标签 统计

c++ ×1

linux ×1

qprocess ×1

qt ×1