如何获取system()命令qt c ++的输出?

时间:2012-10-02 19:27:04

标签: c++ qt command system

我想获得此命令的输出,例如:

system("dir C:\");

或者:

QProcess::execute("cmd /c dir C:\");

怎么做?

谢谢!

2 个答案:

答案 0 :(得分:5)

QProcess process;
process.start("cmd /c dir C:\\");
process.waitForFinished(-1);
QByteArray out = process.readAllStandardOutput();

答案 1 :(得分:1)

您可以将标准输出路径修改为您读取的管道,但使用popen()代替system()会更容易。

由于您似乎使用的是Windows,因此您可以使用_popen()

#include <stdio.h>

....

FILE *fp = _popen("dir c:\", "r");
....
while (!feof(fp)) {
    ....
}
fclose(fp);