Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
mkfifo根本不适用于 Cygwin ?一组简单的命令,例如
mkfifo
$ mkfifo my_pipe $ echo "1234" > my_pipe
只是使终端永远坐着,光标闪烁。我“做错了”吗?
不,你对这两个命令都没有做错,只是你的期望有点偏离。
您缺少的是在该管道的另一端读取该数据的东西。这种明显的挂起也发生在 Linux 中,所以这不是 CygWin 问题(或任何类型的问题,真的)。
只需打开另一个窗口并输入:
cat <my_pipe
你会看到数据出现,然后是原始echo完成。
echo
命名管道的问题是你需要在两端都有一些东西。如果管道尚未完成,您将无法写入管道,因此该echo命令将挂起,直到其他内容尝试从该管道读取,在您的情况下,这永远不会发生。