On Sáb 05 Dic 2009 10:51:02 [email protected] 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. > ¡¡Exactamente!! Muchas gracias. El script es para grabar un script en una cinta y mientras lo graba ir calculado una suma de verificación, de manera de no cargar al disco rigido con dos lecturas (es un bd y está al límite). Pronto lo pongo en practica... ¡Saludos!
-- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

