La tubería funciona conectando la salida de un proceso A a la entrada de B. La conexión se puede romper cuando
- A cierra su salida. B obtendrá EOF.
- B cierra su entrada. A obtendrá un error de que la salida ya no está disponible cuando intente escribir el siguiente byte.
Dado que estos dos casos son tan comunes, el manejo se ha trasladado a la biblioteca estándar de C.
head cierra el archivo de entrada después de leer la cantidad requerida. cuando una tubería se cierra por un lado, el otro lado recibe errores de escritura; esto causa base64 para cerrar, lo que a su vez hace que cat para cerrar.
Después de base64 emite 10 bytes, head obtiene suficientes entradas y salidas. Cuando el primero intente generar más bytes, recibirá la señal SIGPIPE y, por lo tanto, también saldrá. Por la misma razón, cat saldrá a su vez.