Procesos: wait() relanzar proceso hijo

Zany_666
09 de Abril del 2010
Hola a [email protected]! Me estoy haciendo un programilla en C en el que tengo varios procesos creados con fork() y cada uno de estos procesos ejecuta un programa con exec(). Al ejecutar mi programa, todos los que quiero ejecutar con exec () se lanzan a la vez. Por último, en el código de mi programa hago un wait() para esperar a que cada hijo (proceso) termine y muestro el estado con el que han salid. Hasta aquí todo me funciona bien, pero me gustaría que cuando uno de estos programas se cierre o muera se vuelva a lanzar, es decir, siempre van a estar ejecutandose.
He utilizado
[code]if (WIFEXITED(status)){
execvp (...);
exit(EXIT_FAILURE);
}[/code]
Pero con esto solo me lanza el primer programa ejecutado con exec() sea cual sea el que cierre, y lo que quiero es que si tengo tres programas A, B, C, se ejecuten simultaneamente y si cierrro el A se vuelva a lanzar el A. No sé si me explicado bien...
¿Cómo puedo saber cuando un hijo termina (sea cual sea el estado en que termino) para volver a lanzar el proceso?

Gracias adelantadas!