[pyar] Pasar datos de un proceso a otro en Linux?
Manuel Naranjo
naranjo.manuel en gmail.com
Vie Ago 27 16:04:08 ART 2010
>
> 2010/8/27 Roberto Alsina <ralsina en netmanagers.com.ar
> <mailto:ralsina en netmanagers.com.ar>>
>
> Con qué sistema operativo?
>
> Si es Linux, una solución "fácil" es usar DBus. Hacés que el
> programa que
> tiene los datos atienda en un nombre en el bus de sistema, y
> cuando el otro
> quiere datos, se conecta y los pide.
>
>
> Ok, esa está buena, más que nada si ya estás usando DBus.
>
> Si tuvieras que transmitir muchos datos, pensá que podés usar un canal
> "dual" - por DBus le mandás los mensajes de "tenés un frame nuevo", y
> tirás el path al archivo con el frame. O lo pasás con memoria
> compartida (mmap). O con un socket. Toneladas de opciones para
> transmitir binario.
>
> Lo bueno de memoria compartida es que los objetos de memoria
> compartida en python los ves como strings, es muy natural de usar.
Y que les parece esto:
import os
os.mkfifo('/tmp/test.pipe')
fdr = os.open('/tmp/test.pipe', os.O_NONBLOCK|os.O_RDONLY)
// esto es necesario para que la próxima llamada no falle
fd = os.open('/tmp/test.pipe', os.O_NONBLOCK|os.O_WRONLY)
os.close(fdf)
os.write(fd, 'hola mundo\n')
os.read(fdf, 2000) // limpiar buffer
En otra ventana sólo se hace cat /tmp/test.pipe y se ve como sale la info
Parece medio ineficiente no? Más que nada por la parte de que hay que
limpiar el buffer me parece. Alguien sabe si el kernel va a limpiar la
tubería por mi?
Manuel
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100827/3044c788/attachment.html>
More information about the pyar
mailing list