我想打开文件描述符只是为了阅读
mkfifo my_fifo
exec 3<$my_fifo
这个挂起。
另一方面当我做
时exec 3<>$my_fifo
然后它有效。为什么呢?
答案 0 :(得分:4)
打开一个fifo(命名管道)进行读取会挂起,直到某个进程打开fifo进行写入,反之亦然。因此,当开放回归时,你知道&#34;另一端&#34;管子是打开的。
Linux允许您在两个方向上打开管道。如果这样做,管道的两端都是打开的,因此open会立即返回。这是Posix的扩展,不适用于所有系统。
man 7 fifo
有更多信息。