程序A是一个c程序,它无休止地接收stdin中的输入,处理它并将其输出到stdout。
我想编写程序B(用python),这样它就可以读取A的输出,并将所需的内容反馈给它。注意,每个程序只能有一个实例,因此给定b1和b2,它们是b的实例,而不是:
$ b1 | a | b2我需要有
$ b1 | a | b1 以下是最终预期结果的图表:

发布于 2013-01-22 12:46:52
对于那些通过Google来这里的人来说:实际上有一个使用命名管道的非常好的方法:
首先创建两个名称管道:
mkfifo pipe1
mkfifo pipe2然后运行以下命令:
echo -n x | cat - pipe1 > pipe2 & cat <pipe2 > pipe1这将导致cat命令始终相互复制字母x。因此,现在您可以随意使用自己的程序而不是cat来处理输入和输出。这并不局限于python。您还可以将java程序与c++程序连接起来。
例如,如果您的程序名为A.py和B.py,则初始命令为:
echo -n x | ./A.py - pipe1 > pipe2 & ./B.py <pipe2 > pipe1https://stackoverflow.com/questions/4394765
复制相似问题