Foros del Web » Programación para mayores de 30 ;) » Programación General »

Captura de señales en C sobre Linux

Estas en el tema de Captura de señales en C sobre Linux en el foro de Programación General en Foros del Web. Buenas.... tengo el siguiente problema,tengo un programita en c sobre linux el cual genera con fork+ exec varios procesos hijos, los cuales luego un tiempo ...
  #1 (permalink)  
Antiguo 07/07/2005, 08:46
 
Fecha de Ingreso: septiembre-2004
Mensajes: 26
Antigüedad: 19 años, 7 meses
Puntos: 0
Pregunta Captura de señales en C sobre Linux

Buenas....

tengo el siguiente problema,tengo un programita en c sobre linux el cual genera con fork+ exec varios procesos hijos, los cuales luego un tiempo deben terminar su ejecucion. El tema esta que tengo una rutina que captura las señales SIGCHLD hago signal(SIGCHLD,funcionManejaSignal)
el tema esta que me captura algunas veces y otras no, es como que si las
captura muy seguido no las atiende y despues de un rato hago un ps -fa
en una terminal y me tira una lista de todos los procesos Zombie que me quedan (Proceso defunct).

alguien sabe como puedo solucionar esto o tiene alguna mejor idea para capturar las señales?? uso SIGINT,SIGCHLD, SIGTERM, y otras, pero el problema lo tengo con la SIGCHLD cuando mueren o terminan los procesos
hijos.... si quieren postear codigo de rutina mejor !!!

2../ que diferencia hay en hacer exit(0), exit(1), exit(-1)

muchassss Gracias...
  #2 (permalink)  
Antiguo 07/07/2005, 09:08
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
2. La diferencia es el valor que se devuelve como resultado de la ejecucion del programa al Sistema Operativo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 07/07/2005, 18:32
 
Fecha de Ingreso: septiembre-2004
Mensajes: 26
Antigüedad: 19 años, 7 meses
Puntos: 0
Pregunta mmm pero igual no entiendo la diferencia

mmm pero igual no entiendo la diferencia

que diferencia le da al sistema operativo cada respuesta
ej: 0 creo que es terminacion normal de un proceso
y la 1 y -1 no se...

con lo de las capturas.. nada de ideas ???

grax
  #4 (permalink)  
Antiguo 07/07/2005, 23:30
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
La verdad no sabria decirte, Linux no es mi campo.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 08/07/2005, 10:11
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Cita:
2../ que diferencia hay en hacer exit(0), exit(1), exit(-1)
Bueno, esto es una suposicion. Pero creo que se pueden llamar programas desde otros programas y al regresar el valor, te das cuenta si tu programa termino bien, es como llamar una funcion que regresa int, pero en vez de funcion, llamas al main de otro programa.

Esto es una suposicion, no digo que es lo correcto.

Saludos
  #6 (permalink)  
Antiguo 06/12/2007, 01:01
 
Fecha de Ingreso: diciembre-2007
Ubicación: Mexico
Mensajes: 1
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Captura de señales en C sobre Linux

Los valores que le asignas al exit, son para decirle con que valores devuletos termine de ejecutarse tu funcion, debes checar el man de la senal que esta utilizando y ahi vienen los valores que devuelve, dependiendo el tipo de error, generalmente el 0 se usa para decir que termino su ejecucion sin problemas, el -1 a veces se ocupa para decir que no se termino de ejecutar debido a una interrupcion del sistema, si usas linux o mac o sollaris, puedes ver desde consola los man de los comandos o funciones, saludos
  #7 (permalink)  
Antiguo 06/12/2007, 01:08
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Re: Captura de señales en C sobre Linux

Cita:
Iniciado por ArgelWildChild Ver Mensaje
Los valores que le asignas al exit, son para decirle con que valores devuletos termine de ejecutarse tu funcion, debes checar el man de la senal que esta utilizando y ahi vienen los valores que devuelve, dependiendo el tipo de error, generalmente el 0 se usa para decir que termino su ejecucion sin problemas, el -1 a veces se ocupa para decir que no se termino de ejecutar debido a una interrupcion del sistema, si usas linux o mac o sollaris, puedes ver desde consola los man de los comandos o funciones, saludos
No es el valor de retnorno de una funcion, para eso esta return. Es el valor que se devuelve como resultado de la ejecucion del programa al Sistema Operativo. Y por favor comproba la fecha de los hilos donde respondes, este tiene mas de dos años ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
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 03:03.