d.sastre.med...@gmail.com escribió:
On Fri, Dec 04, 2009 at 02:17:50PM -0800, Rodrigo Gallardo wrote:
On Fri, Dec 04, 2009 at 04:08:15PM -0300, Enzo Cappa wrote:
¡Hola!

¿Alguien sabe si es posible construir un pipe entre tres procesos, un productor y dos consumidores? Es decir, por ej., hacer un hecho de uno y que eso lo lean otro dos procesos simultáneamente.
Si es posible, por favor ayudenme a descubrir como.
No, no se puede.

En principio podrías pasarle el descriptor de archivo del lado de
lectura a cualquier número de procesos, pero cada byte que se escriba
en el pipe puede ser leido por cualquiera de ellos y no hay ninguna
garantía de cual va a ganar. Cualquier resultado desde "repartir un
byte a cada lector en orden" hasta "un sólo lector recibe todo y los
demás nada" es perfectamente válido.

Probablemente lo que tendrás que hacer es escribir un proceso
multiplexor, que lea del pipe y lo reparta con el criterio que desees
a los demás.


Hola,

Por lo que he entendido, quieres hacer algo como (de la info de
coreutils):

* tee invocation::              Redirect output to multiple files or
* processes.

     wget -O - http://example.com/dvd.iso \
       | tee >(sha1sum > dvd.sha1) \
             >(md5sum > dvd.md5) \
       > dvd.iso

     tardir=your-pkg-M.N
     tar chof - "$tardir" \
       | tee >(gzip -9 -c > your-pkg-M.N.tar.gz) \
       | bzip2 -9 -c > your-pkg-M.N.tar.bz2

¿Es algo como esto lo que quieres hacer?
Consulta info coreutils (tee) para más información.

Saludos.


Pero hay que aclarar que es una redirección, no un pipe

Saludos


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Responder a