Deberias usar tanto fork como pipe. Al crear una nuevo hijo estos dos quedan incomunicados al menos que crees una tuberia (pipe).
Un pipe es el equivalente a hacer esto en linux:
echo "chau" | grep chau
La barra parada | es la que comunica los dos procesos.
Aca te paso una pagina que explica el funcionamiento:
http://tldp.org/LDP/lpg/node11.html