打开管道与exec挂起

时间:2016-05-24 17:33:30

标签: bash file-descriptor

我想打开文件描述符只是为了阅读

mkfifo my_fifo
exec 3<$my_fifo

这个挂起。

另一方面当我做

exec 3<>$my_fifo

然后它有效。为什么呢?

1 个答案:

答案 0 :(得分:4)

打开一个fifo(命名管道)进行读取会挂起,直到某个进程打开fifo进行写入,反之亦然。因此,当开放回归时,你知道&#34;另一端&#34;管子是打开的。

Linux允许您在两个方向上打开管道。如果这样做,管道的两端都是打开的,因此open会立即返回。这是Posix的扩展,不适用于所有系统。

man 7 fifo有更多信息。