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.