Redireccion de salida de programas

Ricardo Mun~oz A. rmunoz en pjud.cl
Jue Jun 24 17:45:45 CLT 2004


El jue, 24-06-2004 a las 16:43, Paulo Seguel escribió:
> Carlos Manuel Duclos Vergara wrote:

[...]

> > el problema es que es una imposibilidad "fisica"!
> > el proceso B (ls -lR en este caso) fue creado por el proceso A (bash o el 
> > shell correspondiente). Una vez que B esta en ejecucion A no puede acceder 
> > a su espacio de memoria y redireccionar la salida hacia otro lado. Si lo 
> > haces al momento de iniciar la ejecucion lo que hara A es cambiar antes de 
> > hacer un exec los descriptores de archivo para la salida o la entrada 
> > (segun sea lo que necesites) y despues de eso hara el exec. Fork utiliza  
> > los descriptores de archivo del padre (bueno, depende de si estas 
> > sobre linux o un bsd), entre los que se cuentan los de salida/entrada 
> > estandar y exec se encarga del resto de la memoria y esos detalles. Quizas 
> > si el shell usase vfork se lograria algo (vfork no copia nada, crea todo 
> > nuevo, es por eso que fork en uclinux no funciona y vfork si funciona) 
> > pero tambien lo veo dificil. Tu unica opcion seria acceder maliciosamente 
> > a la memoria y cambiar las estructuras de datos del kernel para permitir 
> > ese funcionamiento.
> 
> Me quedo claro, pero entonces como los procesos que estan a la salida de 
> otro pueden comunicarse?

tuberias,memoria compartida,fifos,etc.

-- 
Ricardo Mun~oz A.
Usuario Linux #182825 (counter.li.org)



Más información sobre la lista de distribución Linux