Provided by:
manpages-es_1.55-9_all 
NOMBRE
fifo - fichero especial "primero en entrar, primero en salir", tubería
con nombre
DESCRIPCIÓN
Un fichero especial FIFO (una tubería con nombre) es similar a una
tubería, salvo que se accede a él como parte del sistema de ficheros.
Puede ser abierto por múltiples procesos para lectura o escritura.
Cuando los procesos intercambian datos a través de la FIFO, el núcleo
pasa todos los datos internamente sin escribirlos en el sistema de
ficheros. Por tanto, el fichero especial FIFO no tiene contenido en el
sistema de ficheros, la entrada del sistema de ficheros simplemente
sirve como un punto de referencia de tal manera que los procesos puedan
acceder a la tubería usando un nombre del sistema de ficheros.
El núcleo mantiene exactamente un único objeto tubería para cada
fichero especial FIFO que es abierto por, al menos, un proceso. Se debe
abrir la FIFO en ambos extremos (de lectura y escritura) antes de que
se puedan pasar datos. Normalmente, la apertura de la FIFO se bloquea
hasta que el otro extremo también se abre.
Un proceso puede abrir una FIFO en modo no bloqueante. En este caso,
abrir para sólo lectura tendrá éxito incluso si nadie ha abierto
todavía el lado de escritura. Abrir para sólo escritura fallará con una
ENXIO (no existe tal dispositivo o dirección) a menos que el otro
extremo ya se haya abierto.
En Linux, abrir una FIFO para lectura y escritura tendrá éxito tanto en
modo bloqueante como no bloqueante. POSIX deja sin definir este
comportamiento. Esto se puede usar para abrir una FIFO para escribir
mientras no hay lectores disponibles. Un proceso que usa ambos extremos
de la conexión para comunicarse consigo mismo debería tener cuiado para
evitar bloqueos mortales.
OBSERVACIONES
Cuando un proceso intenta escribir en una FIFO que no está abierta para
lectura en el otro lado, se le envía una señal SIGPIPE.
Los ficheros especiales FIFO se pueden crear con mkfifo(3) y se indican
de manera especial en ls -l.
VÉASE TAMBIÉN
mkfifo(3), mkfifo(1), pipe(2), socketpair(2), open(2), signal(2),
sigaction(2)