C est la maniere la plus courante de lancer un processus "fils" sous Linux. En fait, tu ne l as pas bien remarque sans doute, mais exec n est quasiment jamais utilise seul parce que dans le cas de exec*(), le processus courant est REMPLACE par le processus qui est execute. Ainsi en appelant fork() tu recupere sur le pere le PID du fils, et pour le fils tu appelles exec*().
int pid = fork();
if(pid == -1)
{
printf("Erreur!!");
exit(-1);
}
if(pid == 0)
printf("Bienvenue chez le pere!");
else exec(...);
Par contre il ne faut pas oublier d appeler wait() (ou wait4, voir le manuel), pour que le pere attende la terminaison du fils, afin d eviter qu il ne devienne un processus "zombie". Cependant cela est assez facile puisque le pere recoit un signal SIGCHLD lorsqu un de ses fils quitte, il ne reste donc plus qu a adapter le gestionnaire de ce signal.
j'ai utilisé "execl" pour appeler un programme console depuis une application C++Builder! mais cette application est fermé aprés l"execution de Exec !
c'est quelqu'un à une idee je serais trés reconnaissant.