【问题标题】:C++, Qt: QProcess - How to *avoid* capturing STDOUTC++,Qt:QProcess - 如何*避免*捕获 STDOUT
【发布时间】:2014-07-07 12:24:50
【问题描述】:

我正在寻找一种方法来启动一个进程,而不是捕获它的 STDOUT/STDERR。

即我希望将 STDOUT/STDERR 直接打印到 shell,就像在常规 stdlib system() 调用中一样

谢谢

【问题讨论】:

    标签: c++ qt system-calls


    【解决方案1】:

    是的,您可以使用 QProcess::setProcessChannelMode(ProcessChannelMode mode) 和参数 QProcess::ForwardedChannels 来执行此操作。这是文档条目:link

    【讨论】:

    • 谢谢,它成功了。网上有很多误导性的例子,他们在“start()”之后调用这些方法。因此,即使听起来微不足道,我在这里也想提一下,在开始进程之前需要调用此函数
    【解决方案2】:

    另一个与 stdlib system() 调用等效的选项是 QProcess::startDetached() 静态方法。请注意,它不会再次等待进程完成,就像 stdlib system() 调用一样

    【讨论】:

    • 但这不仅仅是改变输出模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 2016-10-17
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多