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

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

我需要在Linux终端中这样做,因为程序p1和p2可以(并且可能会)用不同的语言执行,比如p1将是c++可执行文件,而p2将是Python脚本.

推荐答案

您可以使用socat实用程序:

socat -v exec:p1 exec:p2

-v是可选的,可以来 echo 示聊天内容,供您调试和享受.

Linux相关问答推荐

从一个文件中读取文件名并将文件名和内容存储到另一个带有|的文件中作为分隔符

为什么waitpid(2)可以指定非子进程?

从 MariaDB 连接到 Oracle 时出现错误消息libsqora.so.11.1:找不到文件

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

Powershell Core,MXLinuxv21,运行 linux /usr/bin/x 命令导致对象命令运行时找不到文件

Bash - 如何根据 names.txt 重命名目录中的文件

如何使用 sed debug调试正则表达式?

Linux time 命令输出中 real、user 和 sys 的含义

未找到框架.NETFramework,Version=v4.7.1的参考程序集

RealUID,保存的 UID,有效的 UID.这是怎么回事?

如何在 Linux 中设置目录大小限制?

如何使用 AWK 合并两个文件?

禁用内存地址的随机化

*nix 系统上是否有与 COM 等效的功能?如果不是,那么 *nix 的可重用性方法是什么?

如何关闭被杀死的程序打开的套接字?

JAVA_HOME 和 PATH 已设置,但 java -version 仍显示旧版本

当将信号量减为零的进程崩溃时,如何恢复信号量?

Python日志(log)记录 - 判断日志(log)文件的位置?

PostgreSQL psql 终端命令

linux脚本杀死java进程