2012-07-19 50 views
2

mkfifo FIFO
回聲1> FIFO上最後一個命令 塊。爲什麼輸出到在bash塊FIFO和不當存在重定向

我發現這gnu libc

一個解釋。然而,它必須是開放的,在兩端同時才能繼續做它的任何輸入或輸出操作。打開一個FIFO用於正常讀取塊,直到某個其他進程打開相同的FIFO進行寫入,反之亦然。

>mkfifo fifo 
>exec 5<>fifo 
>echo 1 >&5 

不會阻止和行之有效的。同樣,AFAIK shell使用dup2來重定向,但是 這是如何產生影響的?

其實我找到答案時,我提出了問題。我會在下面發佈。

回答

1

那麼答案很簡短。

我的Linux發行版man 7 fifo

在Linux下,打開一個FIFO的讀寫會阻塞和非阻塞模式成功兩者。 POSIX使這個行爲不確定。

所以這是由於<>在重定向。

相關問題