Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Actualizar consola

Estas en el tema de Actualizar consola en el foro de C/C++ en Foros del Web. Bunas. Estoy haciendo un intérprete de comandos en unas prácticas y he llegado a un ejercicio en el que me toca programar una orden en ...
  #1 (permalink)  
Antiguo 15/04/2009, 05:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 10
Antigüedad: 15 años, 5 meses
Puntos: 2
Actualizar consola

Bunas. Estoy haciendo un intérprete de comandos en unas prácticas y he llegado a un ejercicio en el que me toca programar una orden en la que por ejemplo cuando termine un proceso en segundo plano, me aparezca en el intérprete el pid del proceso y su causa. He logrado hacerlo, pero no me lo muestra cuando termina, sino cuando una vez terminado pulso intro. Es decir, si yo hago: sleep 10 &. si después de 10 segundos pulso intro, me dice que ha muerto ese proceso con una pid tal. pero necesito que me lo muestre automáticamente, pero nose como. He pensado en un hilo que valla comprobando continuamente la situación de los procesos en segundo plano, pero nose de ninguna función que valla comprobando el intérprete continuamente. Alguien me puede echar una mano???
  #2 (permalink)  
Antiguo 15/04/2009, 07:42
Avatar de Claw  
Fecha de Ingreso: abril-2009
Mensajes: 299
Antigüedad: 15 años
Puntos: 9
Respuesta: Actualizar consola

Yo lo que haría sería buscar qué señal me permite saber cuando un proceso hijo ha acabado. Cuando ésta señal la reciba el padre (que supongo es tu consola) vaya a una función que tú definas y en ella especifiques que imprima lo que quieras.

Por ejemplo, dentro de tu código pones:

signal(señal, tufuncion);

Donde señal es la señal que manda el hijo al padre cuando acaba (puedes buscar más info haciendo man signal o en el enlace que te pongo abajo).

tufuncion sería un procedimiento que imprima el pid y lo que quieras.

Salu2

Enlace: http://www.comptechdoc.org/os/linux/...pgsignals.html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:56.