mkfifo导致终端挂起?

时间:2012-10-01 04:44:50

标签: cygwin mkfifo

mkfifo根本不适用于Cygwin吗?一组简单的命令,例如

$ mkfifo my_pipe

$ echo "1234" > my_pipe

只是让终端在光标闪烁的情况下永远坐着。我做错了吗?#34;

2 个答案:

答案 0 :(得分:3)

不,你对这些命令的 没有任何错误,只是你的期望有些偏差。

您丢失的内容是该管道的另一端,读取该数据。这种明显的悬挂也发生在Linux中,所以它不是CygWin问题(或任何类型的问题,真的)。

打开另一个窗口并输入:

cat <my_pipe

您将看到数据显示,然后是原始echo完成。

答案 1 :(得分:0)

命名管道的东西是你需要在两端都有东西。如果管道尚未完成,则无法写入管道,因此echo命令将挂起,直到其他东西尝试从该管道读取,在您的情况下永远不会发生。