mkfifo
根本不適用於Cygwin?一組簡單的命令如mkfifo導致終端掛起?
$ mkfifo my_pipe
$ echo "1234" > my_pipe
只是導致終端永遠坐着,光標閃爍。我是否「做錯了」?
mkfifo
根本不適用於Cygwin?一組簡單的命令如mkfifo導致終端掛起?
$ mkfifo my_pipe
$ echo "1234" > my_pipe
只是導致終端永遠坐着,光標閃爍。我是否「做錯了」?
不,你沒有做任何錯誤或者這些命令的,這只是你的期望有點關閉。
你錯過的東西在另一端,讀取該數據。這種明顯的掛起也發生在Linux上,所以它不是CygWin問題(或者任何其他問題)。
只需打開另一個窗口,然後輸入:
cat <my_pipe
,你會看到的數據顯示,後跟原始echo
完成。
命名管道的事情是,你需要兩端都有東西。如果管道尚未完成,則無法寫入管道,因此echo
命令會掛起,直到有其他設備嘗試從該管道讀取(在您的情況下永遠不會發生這種情況)。