Forking is an important phase of Unix, critical to the support of its design strategies, which encourages the implementation of filters. In Unix, a filter is a process that reads its input from stdin, and gives its output to stdout. A pipeline of these instructions can be strung together by a shell to make new commands. i.e:, one may string together the output of thefind(1) instruction and the input of the wc(1) instruction to prepare a new command that will give a count of files ending in ".cpp" found in the current file system and any subdirectories, as follows:
$ find . -name "*.cpp" -print | wc -l
More usually, forking is also operated by the shell each time a user issues an instruction. A child process is prepared by forking the shell, and the child process is shown, once again by exec, with the code included with the program to be run.