3 communcation channels:
stdin, stdout, stderr
| to pipe information of one process to another
We can think of pipe as an anonymous file that residese between 2 processes.
One process writes bytes to the pipe, the other reads.
#include <unistd.h> int pipe( int fd ) // 0 for success, !0 for errors fd is an array of file desc, fd == reading end, fd == writing end