Cómo hacer una tubería en c ++

Estoy mirando el código de un programa de C ++ que canaliza el contenido de un archivo a más. No lo entiendo del todo, así que me preguntaba si alguien podría escribir pseudocódigo para un programa de C ++ que canaliza algo a otra cosa. ¿Por qué es necesario usar fork?