【发布时间】:2013-07-17 09:34:08
【问题描述】:
我正在尝试了解 OSX/Linux 中的管道。我有一个名为 foo 的实用程序。我希望它解析我从其他任意实用程序传递给它的任何输入,如果没有输入则退出。我目前正在阅读 cin 的内容,如果我将某些内容传递给 foo,它就可以正常工作。但是,如果我不将任何内容通过管道传输到 foo,则读取到 cin 会无限期地阻塞。
显然我做错了/愚蠢的事情。解决这个问题的正确方法是什么?
【问题讨论】:
-
您是否尝试过用键盘输入输入并在完成时输入 cntr+d?
-
阻塞是从标准输入读取的程序的预期行为。尝试不带参数运行
cat,您会看到它具有相同的行为。还可以尝试@hetepeperfan 的建议,这是用户在这些情况下的期望。 -
我接受了上面的建议,只是复制了“cat”实用程序的行为。它不能解决问题,但我可以忍受。谢谢你。