我只想打开一个文件描述符用于读取
mkfifo my_fifo
exec 3<$my_fifo
这个挂了。
另一方面,当我这样做的时候
exec 3<>$my_fifo
然后就可以了。为什么?
最佳答案
打开 fifo(命名管道)进行读取会挂起,直到某个进程打开 fifo 进行写入,反之亦然。因此,当打开返回时,您知道管道的“另一端”已打开。
Linux 允许您双向打开管道。如果你这样做,管道的两端都是开放的,所以开放会立即返回。这是对 Posix 的扩展,并不适用于所有系统。
man 7 fifo
有更多信息。
关于bash - 打开带有 exec 的管道挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37420265/