next up previous contents index
Next: Sockets Up: Tipos de ficheros Previous: /dev/null   Índice General   Índice de Materias

Tuberías con nombre (named pipes) (FIFOs)

Una tubería con nombre es un fichero que actúa como una tubería. Se pone algo en el fichero y sale por el otro lado. Por ello se llama FIFO, o ``First-In-First-Out'', «lo primero que entra es lo primero que sale», debido a que lo primero que se introduce en la tubería es lo primero que sale por el otro lado.

Si se escribe a una tubería con nombre, el proceso que escribe a la tubería no termina hasta que la información que se escribe se lea desde el otro lado de la tubería. Si se lee desde una tubería con nombre, el proceso que lee espera hasta que haya algo que leer, antes de terminar. El tamaño de la tubería es siempre cero; no almeacena datos, sino que se limita a enlazar dos procesos como el redireccionador | del intérprete de órdenes. No obstante, debido a que esta tubería tiene nombre, los dos procesos no necesitan estar en la misma línea de órdenes ni tampoco que los ejecute el mismo usuario.

Puede probarlo ejecutando lo siguiente:

     cd; mkfifo mituberia
Construye la tubería.

     echo "hola" > mituberia &
Coloca en segundo plano un proceso que intenta escribir «hola» en la tubería. Nótese que el proceso no vuelve de su segundo plano; por el contrario, está a la espera de que alguien lea desde la tubería.

     cat mituberia
En este punto, el proceso echo tendría que volver, debido a que cat lee de la tuberia, y el proceso cat imprimirá entonces hello.

     rm mituberia
Podrá borrar las tuberías como lo hace con cualquier otro fichero.


next up previous contents index
Next: Sockets Up: Tipos de ficheros Previous: /dev/null   Índice General   Índice de Materias
Enrique Zanardi 2000-11-26