我正在寻找一种方法来获取从C++程序中运行命令的输出.我已经看过使用system()函数,但这只会执行一个命令.这是我正在寻找的一个例子:
std::string result = system("./some_command");
Run Code Online (Sandbox Code Playgroud)
我需要运行一个任意命令并获取其输出.我看过Boost.org,但我找不到任何可以满足我需要的东西.
我以为我将使用以下代码从QProcess获取输出:
// Start the process
process.start(tr("php-cgi www/test.php"),QIODevice::ReadWrite);
// Wait for it to start
if(!process.waitForStarted())
return 0;
// Continue reading the data until EOF reached
QByteArray data;
while(process.waitForReadyRead())
data.append(process.readAll());
// Output the data
qDebug(data.data());
qDebug("Done!");
Run Code Online (Sandbox Code Playgroud)
我期待的是看到程序的输出打印到调试控制台,但我看到的只有:
完成!
我知道:
我在这做错了什么?
Windows 7中是否有可用的完整POSIX实现(我在考虑Windows Services for UNIX)?
它是否适用于每个版本的操作系统(似乎没有)?
它如何在以前的MS Windows POSIX实现中添加/改进或中断?
在哪里可以找到有关Windows 7中有关POSIX合规性的特定Microsoft方法和实现的更多信息?