<<Up     Contents

Pipes and filters

Pipes and filters is a software design pattern invented by Douglas McIlroy.

In the context of Unix operating systems, a pipe signifies that the output of one program feeds directly as input to another program. The Unix shell uses the pipe character (|) to join programs together. A sequence of commands joined together by pipes is known as a pipeline. For creating this mechanism, all Unix tools have access to three distinct files:

By joining one tools stdout to another tools stdin, a pipeline is formed. Errors are sent to a side track and accumulated.

Often filter programs form the constituent programs in a pipeline.

An example of a pipeline:

 cat * | grep "alice" | grep -v "wonderland" | wc -l

will print out the number of lines in all files is a directory which contain the text "alice" without the text "wonderland".

The pipeline has four parts:

Pipes and filters can be viewed as a form of functional programming, using byte streams as data objects.

wikipedia.org dumped 2003-03-17 with terodump