linux下有没有办法连接两个程序的输出/输入?

问题描述 投票:0回答:1

我有两个程序(p1和p2),我需要将p1输出连接到p2输入,并将p2输出连接到p1输入。有办法做到这一点吗?

“为什么”是因为我有两个要玩游戏的程序,所以第一个程序将执行一个动作并等待接收另一个程序的动作,依此类推。当第一个程序以信号 0 或 1 退出时,执行结束。程序 p1 将始终相同,但 p2 将在每次迭代中发生变化。

我需要在 Linux 终端中执行此操作,因为程序 p1 和 p2 可以(并且可能会)以不同的语言执行,例如 p1 将是 c++ 可执行文件,p2 将是 python 脚本。

linux bash console
1个回答
0
投票

有多种使用 fifo 的选项。

使用一个先进先出:

mkfifo fifo
tail -f fifo | p1 | p2 > fifo &

有两个 fifo:

mkfifo fifo1
mkfifo fifo2
tail -f fifo1 | p1 > fifo2 &
tail -f fifo2 | p2 > fifo1 &

使用 2 个 fifo 的一个原因可能是,可以在流中为 p1 和 p2 添加一些内容。

© www.soinside.com 2019 - 2024. All rights reserved.