FIFO significa Fist In First Out (primero en entrar, primero en salir) y es utilizado en estruturas de datos para implementar colas. Su comportamiento como se ve es análogo al de una cola donde la primera persona en llegar es la primera en ser atendida.
En GNU/Linux podemos crear objetos tipo fifo en nuestro sistema de archivos. Para ello tenemos el comando mkfifo. Para crear un fichero tipo fifo, también llamado tuberia (pipe) debemos ejecutar:
$ mkfifo nombre_fifo
Para introducir datos en el puedes emplear el operador >
Por ejemplo
$ echo Hola > nombre_fifo
y para extraer datos de el basta por ejemplo ejecutar
$ cat nombre_fifo
Prueba a crear una fifo y desde dos terminales distintas ejecuta los dos comandos anteriores. Verás que cualquiera de ello espera a que el otro escriba o lea los datos que necesita. No importa el orden en el que los ejecutes.
Si ejecutas:
$ ls -l nombre_fifo
Verás que la primera letra que sale, la que corresponde al tipo de fichero es una p de pipe.
A diferencia de las tuberias en linea (|) que sólo sirven para permitir que la salida de una aplicación sea la entrad de otra las fifo también llamadas tuberias con nombre (named pipes) nos permiten además de esta redirección de la salida estandar una redirección de cualquier dato de salida que pueda ser grabado a disco.
Esto es particularmente útil para aplicaciones o grupos de aplicaciones que no soportan tuberias en linea.
Ejemplo:
$ mkfifo mififo
$ lame -q 2 -b 128 mififo output.mp3
$ mplayer input.rm -ao pcm -aofile mififo
Con esto podemos convertir ficheros en formato Real media a mp3
Es posible crear tuberias con nombre empleando el comando mknod, de hecho era el método utilizado para crearlas antes de la aparición del comando mkfifo para simplificar esta tarea.
Mas información en:
Linux Journal
Unix review





27/02/08 18:33:41
Trabajar con memoria compartida entre procesos php
Para los que no deseen emplear fifos para la comunicación entre procesos php, la otra solución es compartir un segmento de memoria. Esta tarea se puede realizar con los comandos shmop. Estas funciones no precisan la instalación
17/03/08 21:52:23
Fork en Linux
    Existen multitud de programas que mantiene varios procesos para poder atender distintas tareas, resolver en paralelo una tarea compleja o ser más eficientes en las respuestas al usuario. Para ello el programa debe ser capaz de lanz
08/08/08 23:16:24
Comando linux test
Este comando linux tiene ciertas peculariedades que lo alejan de su utilización en consola y lo hacen realmente útil para el programación de scripts. Seguramente el hecho más relevante que reafirma lo que acabamos de decir en la manera en la que test devu