gpt4 book ai didi

qt - 如何从 QProcess 获取 STDOUT?

转载 作者:行者123 更新时间:2023-12-03 10:56:22 25 4
gpt4 key购买 nike

我以为我将使用以下代码从 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!");

我期望看到程序的输出打印到调试控制台,但我看到的是:

Done!



我知道:
  • 程序启动正常,因为打印了最后的消息。
  • 该程序会打印输出,因为在终端中运行完全相同的命令会按预期生成一长串文本。

  • 我在这里做错了什么?

    最佳答案

    在开始流程调用之前:

    process.setProcessChannelMode(QProcess::MergedChannels);

    它会导致将所有内容(甚至 STDERR 输出)打印到 STDOUT 输出。

    关于qt - 如何从 QProcess 获取 STDOUT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3852587/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com