2012-10-01 112 views
2

mkfifo根本不適用於Cygwin?一組簡單的命令如mkfifo導致終端掛起?

$ mkfifo my_pipe 

$ echo "1234" > my_pipe 

只是導致終端永遠坐着,光標閃爍。我是否「做錯了」?

回答

4

不,你沒有做任何錯誤或者這些命令的,這只是你的期望有點關閉。

你錯過的東西在另一端,讀取該數據。這種明顯的掛起也發生在Linux上,所以它不是CygWin問題(或者任何其他問題)。

只需打開另一個窗口,然後輸入:

cat <my_pipe 

,你會看到的數據顯示,後跟原始echo完成。

1

命名管道的事情是,你需要兩端都有東西。如果管道尚未完成,則無法寫入管道,因此echo命令會掛起,直到有其他設備嘗試從該管道讀取(在您的情況下永遠不會發生這種情況)。