Redireccion de salida de programas
Paulo Seguel
pseguel en atentus.com
Jue Jun 24 16:43:59 CLT 2004
Carlos Manuel Duclos Vergara wrote:
>>>ls -lR > archivo
>>
>>No pues, ya ejecute "ls -lR" y esta en medio de toda esa salida.
>>
>>El asunto es que no quiero/puedo cortar el proceso y quiero que empieze a
>>tirar la salida a otro lado.
>>
>
>
> 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? bueno, eso prefiero buscarlo en la red.
--
Paulo Seguel
pseguel en atentus.com
Más información sobre la lista de distribución Linux