【发布时间】:2016-11-09 00:40:09
【问题描述】:
我正在尝试启动外部程序并与它们通信。
我想使用 QProcess 在后台运行这个应用程序。并且还将命令从这段代码传递给这个进程。
有人可以阐明这一点,并在代码运行时相应地指导我执行命令吗?
在 python 中类似这样的东西,但对于使用 QProcess 的 c++
p = subprocess.Popen(['mpg321', '-R', 'anyword'], stdin=PIPE)
p.stdin.write('LOAD test.mp3\n')
【问题讨论】:
-
popen()函数接受两个参数:命令字符串和"r"或"w",具体取决于您是要写入标准输入还是从命令的标准输出读取跑步。您显示的部分错误消息为您提供了该信息 - 命令和模式。如果要将程序的标准输入中继到运行的命令,则需要循环,从标准输入读取数据并写入成功打开的f文件流。您应该考虑使用<cstdio>代替<stdio.h>;您现有的代码是 C 代码(以及 C++)。 -
我有类似的东西,就我而言,我使用共享内存。在共享内存中,我有一个命令缓冲区,其中一个进程写入,另一个进程从中读取。
-
popen("mpg321 -R ewqe", "w")