Linux - unos de fork y execle_tty

 
Vista:

unos de fork y execle_tty

Publicado por Cecilia (8 intervenciones) el 03/07/2007 22:27:31
Tengo un problema para controlar la ejecucion de un proceso hijo creado con fork , del cual uso el pid para iniciar otro programa con execle. El problema es que en la pantalla solo veo lo que va haciendo el proceso padre(suelo usar printf para que me diga lo que va haciendo).
Habra alguna manera de que la informaciòn del proceso hijo se muestre en la pantalla?
Bueno desde ya gracias me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:unos de fork y execle_tty

Publicado por Tom (482 intervenciones) el 04/07/2007 10:32:17
En principio no hay ninguna razón para que un subproceso creado con fork() no "herede" los descriptores estándar. O sea que debería funcionar el printf() en el subproceso.

Pero, ¿podrías contar más exactamente cómo usas el PID del hijo creado con fork() para lanzar otro programa con exec() ? (que yo sepa, ninguna de las variantes de exec() utiliza el pid de otro proceso)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:unos de fork y execle_tty

Publicado por Cecilia (8 intervenciones) el 04/07/2007 16:48:39
Al creal el proceso hijo con fork() y luego usando exec() para iniciar un programa(diferente al del padre), este programa seria el hijo, por eso usa el pid que devuelve el fork().
Osea que con lo que me decis los printf ()del proceso hijo deberian aparecer en la pantalla donde esta corriendo el padre.
Gracias, seguire probando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:unos de fork y execle_tty

Publicado por Tom (482 intervenciones) el 05/07/2007 08:23:47
Es que os liais. Un PID es un _identificador_de_proceso_ (o sea, un número) NO un proceso.
En tu caso, _nadie_ usa el pid. Lo que tú haces es convertir el proceso hijo obtenido con fork() en otro proceso distinto, mediante exec().

Aparecerán los printf() del hijo mientras exista; recuerda que exec() lo convierte en otro proceso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar