FIFO(7)

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.

A process can open a FIFO in nonblocking mode. In this case, opening for read-only succeeds even if no one has opened on the write side yet and opening for write-only fails with ENXIO (no such device or address) unless the other end has already been opened.

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.

NOTAS
For details of the semantics of I/O on FIFOs, see pipe(7).

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.

FIFO special files can be created by mkfifo(3), and are indicated by ls -l with the file type 'p'.

VÉASE TAMBIÉN
mkfifo(1), open(2), pipe(2), sigaction(2), signal(2), socketpair(2), mkfifo(3), pipe(7)

COLOFÓN
Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del proyecto, información sobre cómo informar errores y la última versión de esta página en https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Juan Piernas <piernas@ditec.um.es> Esta traducción es documentación libre; lea la GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org>..