【发布时间】:2010-11-07 12:17:25
【问题描述】:
管道如何工作?如果我通过 CLI 运行一个程序并将输出重定向到一个文件,我是否能够在编写该文件时将该文件传送到另一个程序中?
基本上,当将一行写入文件时,我希望它立即通过管道传输到我的第二个应用程序(我正在尝试从现有程序动态绘制图形)。只是不确定管道是否在继续执行下一个命令之前完成了第一个命令。
任何反馈将不胜感激!
【问题讨论】:
-
您在下面提到了 program1 的 CLI 接口 - 如果 program1 依赖于交互式输入,那么它可能不适合像 Adam 的回答那样直接管道。
-
windows 中的管道与 Linux 中的管道不同...我相信 Linux 使用某种类型的环形缓冲区并使用并发编程理论(生产者-消费者问题等)来表现良好。我认为 Windows 会等到第一个程序完成后再调用第二个。