【发布时间】:2014-01-20 04:34:33
【问题描述】:
假设我有这个:
A | B | C
管道是如何工作的? A 是否仅在 B 请求时才生成数据?如果 B 目前不能接受,A 是否会不断产生数据然后阻塞? C的作用是什么?我意识到我正在设计的系统在概念上与这些管道非常相似——我想利用现有的范式,而不是发明一些只能起到一半效果的新奇事物。
【问题讨论】:
-
您能详细介绍一下您的流程吗?如果 B 不读取 STDIN ,那么 A 所做的和 C 一样的都无关紧要
-
是的,B 将从 A 中读取(而 C 从 B 中读取)。 A 和 B 也会写信给
stdout. -
A 、 B 或 C 可以根据需要终止管道,例如: cat largefile |头-n1 | grep 'test' : 只读取一条记录,全部结束
-
在en.wikipedia.org/wiki/Pipeline_(Unix)有一些关于实现的简要说明
标签: linux bash shell unix pipe