7

我想创建一个命名管道,就像“mkfifo”创建的那样,但有一个警告。我希望管道是双向的。也就是说,我希望进程 A 写入 fifo,进程 B 从中读取,反之亦然。由“mkfifo”创建的管道允许进程 A 读取其写入管道的数据。通常我会使用两个管道,但我试图模拟一个实际的设备,所以我希望 open()、read()、write() 等的语义尽可能与实际设备相似。任何人都知道无需借助两个管道或命名套接字即可完成此任务的技术吗?

4

2 回答 2

6

pty(“伪终端接口”)。man pty.

于 2009-08-31T18:34:31.303 回答
5

使用 Unix 域套接字。

哦,您说过您不想使用唯一可用的解决方案——Unix 域套接字。

在这种情况下,您将不得不打开两个命名管道,或者不这样做。当然,或者为他们编写自己的设备驱动程序——无论如何,你可以为开源系统编写;对于闭源系统(Windows、AIX、HP-UX)来说,这可能更难。

于 2009-08-31T18:33:11.930 回答