Подпрограмма factorial(). Выполняется расчет значения факториала параметра подпрограммы простым итерационным способом. На каждом этапе вычисления выполняется вывод промежуточного результата. Поскольку дескриптор файла writer был установлен как применяемый по умолчанию с помощью функции select(), каждый вызов функции print() вводит в канал данные, которые в конечном итоге считываются родительским процессом.
Подпрограмма fibonacci(). Она идентична подпрограмме factorial(), кроме выполнения самого расчета. Можно заставить родительский процесс выполнять что-то более полезное вместо простого повтора результатов, возвращенных его дочерними процессами. Вариант такого метода применяется для создания Web-cepвepa с предварительным ветвлением. В последствии на таком сервере можно разместить проекты, разработка сайтов которых использует дополнительные приложения. Родительский Web-cepвep может управлять сотнями дочерних процессов, каждый из которых отвечает за обработку входящих запросов Web. Для корректировки числа дочерних процессов в соответствии с входящей нагрузкой родительский процесс контролирует состояние дочерних процессов по сообщениям, отправляемым ими по каналу, и запускает дополнительные дочерние процессы в условиях высокой нагрузки или уничтожает дочерние процессы в условиях низкой загрузки.
Функция pipe() может также применяться для создания дескриптора файла, подключенного к другой программе, во многом аналогично тому, как это выполняет функция open (), применяемая для создания канала. Такой метод не часто применяется, но идея состоит в том, что родительский процесс выполняет функцию fork (), а дочерний переоткрывает либо STDIN, либо STDOUT вместо одного из парных дескрипторов файлов, а затем вызывает на выполнение требуемую программу с помощью функции ехес() с параметрами.