c中的命名管道

时间:2010-11-14 21:29:30

标签: c unix pipe

我正在尝试在C中使用命名管道并遇到一些困难。就匿名管道而言,我只是使用r / w描述符创建管道,然后每次我想要读取或写入时关闭另一端。这很容易做到,因为我每次都可以打开()并关闭()另一端。

使用命名管道,我有点困惑,我找到了创建命名管道的指令mkfifo(),但不理解如何正确读取和写入。

由于

3 个答案:

答案 0 :(得分:4)

使用mkfifo()创建管道后(可能在过去的任何时间点完成 - 文件系统中存在命名管道,直到它们被取消链接),读取端使用{{1}打开它写作方用open("/path/to/pipe", O_RDONLY)打开它。

之后它可以像匿名管道一样使用。

答案 1 :(得分:2)

没什么可说的。使用mkfifo创建管道,然后像任何文件一样读取和写入进程。它也不是C特定的。你可以这样做:

mkfifo testfifo

cat testfifo

然后在另一个窗口

回声“你好,世界”> testfifo

答案 2 :(得分:0)

我认为你应该只使用管道,因为它们处理不同进程之间的数据传输,无论每个进程占用的时间