2012-10-01 39 views
2

mkfifo根本不适用于Cygwin?一组简单的命令如mkfifo导致终端挂起?

$ mkfifo my_pipe 

$ echo "1234" > my_pipe 

只是导致终端永远坐着,光标闪烁。我是否“做错了”?

回答

4

不,你没有做任何错误或者这些命令的,这只是你的期望有点关闭。

你错过的东西在另一端,读取该数据。这种明显的挂起也发生在Linux上,所以它不是CygWin问题(或者任何其他问题)。

只需打开另一个窗口,然后输入:

cat <my_pipe 

,你会看到的数据显示,后跟原始echo完成。

1

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