FIFOs en linux

24 02 2008 GNU/Linux
¿Que es un FIFO?

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

Bookmark FIFOs en linux  at del.icio.us Digg FIFOs en linux Mixx FIFOs en linux Bloglines FIFOs en linux Technorati FIFOs en linux Fark this: FIFOs en linux Bookmark FIFOs en linux  at YahooMyWeb Bookmark FIFOs en linux  at Furl.net Bookmark FIFOs en linux  at reddit.com Bookmark FIFOs en linux  at blinklist.com Bookmark FIFOs en linux  at Spurl.net Bookmark FIFOs en linux  at NewsVine Bookmark FIFOs en linux  at Simpy.com Bookmark FIFOs en linux  at blogmarks Bookmark FIFOs en linux  with wists Bookmark FIFOs en linux  at Ma.gnolia.com wong it! Bookmark using any bookmark manager! Stumble It!

Referencias


27 02 2008
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
Weblog: Novanebula blog
Tracked: Feb 27, 18:33
17 03 2008
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
Weblog: Novanebula blog
Tracked: Mar 17, 21:52
08 08 2008
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
Weblog: Novanebula blog
Tracked: Aug 08, 23:16

Comentarios

Mostrar comentarios como (Plano | Hilos)
No hay comentarios

Añadir comentario


Encerrando entre asteriscos convierte el texto en negrita (*palabra*), el subrayado es hecho así: _palabra_.
Smilies normales como :-) y ;-) son convertidos en imágenes.