如何实现一个终端与另一个终端的通信?在同一系统中

如何实现一个终端与另一个终端的通信?在同一系统中

我正在终端上运行 cpp 可执行文件。如何传递并获取另一个终端的输入/输出?

答案1

如果您是两个终端的所有者,则可以这样做。

在 A 航站楼:

% tty
/dev/pts/1                      # make note of this
% while sleep 3600; do :; done  # start a command which does NOT read

在 B 航站楼:

% cat </dev/pts/1

现在,您在终端 A 中输入的任何行都将转到cat终端 B 中。

这是为了防止在终端 A 中运行的 shell 与终端 Bwhile sleep 3600; ...争夺输入。cat

看起来完全没有意义?

那是因为它是。在终端 B 中运行的程序可以使用各种 IPC 接口(命名管道、unix 套接字、共享内存等)更好地与终端 A 中的另一个程序进行通信。由于您位于同一系统上,因此您可以首先在终端 A 中运行该程序。

相关内容