2

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

$ mkfifo my_pipe

$ echo "1234" > my_pipe

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

4

2 回答 2

4

不,你对这两个命令都没有做错,只是你的期望有点偏离。

您缺少的是在该管道的另一端读取该数据的东西。这种明显的挂起也发生在 Linux 中,所以这不是 CygWin 问题(或任何类型的问题,真的)。

只需打开另一个窗口并输入:

cat <my_pipe

你会看到数据出现,然后是原始echo完成。

于 2012-10-01T04:46:56.043 回答
0

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

于 2012-10-01T04:48:43.877 回答