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?