Your terminal is not a terminal: An Introduction to Streams

Streams are just that: streams. In the same way that a river has a stream of water, programs have streams of data . Moreover, just like you can use steel pipes to carry water from one place to another, you can use UNIX pipes to carry data from one program to another . This was the very analogy that inspired the design of streams:

We should have some ways of connecting programs like a garden hose — screw in another segment when it becomes necessary to massage data in another way. This is the way of I/O also. — Douglas McIlroy

Streams can be used to pass data into programs and to get data out of them.