打开带有 exec 的管道挂起
Opening pipe with exec hangs
我只想打开一个文件描述符来读取
mkfifo my_fifo
exec 3<$my_fifo
这个挂了
另一方面,当我这样做时
exec 3<>$my_fifo
然后就可以了。为什么?
打开 fifo(命名管道)进行读取会挂起,直到某个进程打开 fifo 进行写入,反之亦然。所以当打开returns的时候,就知道管道的"other end"是打开的
Linux 允许您在两个方向打开管道。如果这样做,管道的两端都是打开的,所以立即打开 returns。这是对 Posix 的扩展,并不适用于所有系统。
man 7 fifo
有更多信息。
我只想打开一个文件描述符来读取
mkfifo my_fifo
exec 3<$my_fifo
这个挂了
另一方面,当我这样做时
exec 3<>$my_fifo
然后就可以了。为什么?
打开 fifo(命名管道)进行读取会挂起,直到某个进程打开 fifo 进行写入,反之亦然。所以当打开returns的时候,就知道管道的"other end"是打开的
Linux 允许您在两个方向打开管道。如果这样做,管道的两端都是打开的,所以立即打开 returns。这是对 Posix 的扩展,并不适用于所有系统。
man 7 fifo
有更多信息。