post #1 (permalink) Antiguo 22-abr-2010, 09:10
Predeterminado alarm() en C
Tengo un problema con esta función.

Quiero que un programa cree procesos (mediante fork()) encargados de ejecutar otros programas o mandatos (mediante execvp ()) y espere a que terminen (mediante wait ()). Necesito que, si se supera el tiempo determinado por una variable de entorno, se interrumpa la ejecución del hijo actual (se crean secuencialmente) y se devuelva un error. He leído la variable de entorno, y, con el valor correspondiente, he hecho una llamada a la función alarm().

Ahora bien, no consigo que, cuando llegue la señal, el programa principal retome el control. Si dejo el handler por defecto, se interrumpe el principal y el hijo sigue ejecutándose, y si creo otro, hasta que el hijo no ha terminado el programa no lanza el error.

Qué puedo hacer?
Usuario Registrado
Fecha de Ingreso: abr-10
Mensajes: 1
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
n070161 está desconectado
Responder Citando
post #2 (permalink) Antiguo 22-abr-2010, 22:14
Predeterminado
A ver, a quien le llega la señal de alarm()?
Pero porque no dejas al padre esperando por un cierto tiempo sin avanzar. O debe seguir con sus cosas? Cuando se pasa el tiempo, el hijo debe morir? Si es asi, mandale una señal 9 (Matar) con la sentencia Kill.
__________________


Avatar de Sam
Sam
Usuario Novato
Fecha de Ingreso: sep-08
Edad: 22
Mensajes: 56
Gracias dadas: 0
Agradecido 0 veces en 0 Mensajes
Enviar un mensaje por MSN a Sam
Sam está desconectado
Responder Citando
Respuesta

Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Ir al Foro


La franja horaria es GMT -3. Ahora son las 04:05.