【问题标题】:Qprocess arguments echo and pipingQprocess 参数回显和管道
【发布时间】:2016-02-14 21:38:48
【问题描述】:

我正在尝试在我的 Raspberry Pi (Raspbian) 中的 QProcess 下启动 CEC 命令。

如果我在我的 shell 中执行这个:

echo 'standby 0' | cec-client -s

它正在工作,但如果我把它放在一个 Qprocess 中:

QProcess *proc = new QProcess;
proc->start("echo",{"'standby 0' | cec-client -s"});
proc->waitForFinished();

它没有按预期执行。否则在我的 Raspberry Pi 中运行良好。我做错了什么?

【问题讨论】:

  • 会发生什么不同?
  • 我不相信如果不生成 shell 而不是执行 echo,这将起作用。管道本身就是外壳的一个特征。

标签: c++ shell process qt5 qprocess


【解决方案1】:

问题是您不能使用 QProcess 运行系统命令,而只能运行单个进程。因此,解决方法是将您的命令作为参数传递给 bash:

process.start("bash", QStringList() << "-c" << "echo 'standby 0' | cec-client -s");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    相关资源
    最近更新 更多