A voir également:
- Executer en programe externe en c
- Chkdsk disque dur externe - Guide
- Brancher lecteur dvd externe sur tv en usb - Forum Lecteurs et supports vidéo
- Appel externe c'est quoi - Forum telephonie fixe
- Batterie externe clignote ne charge pas - Forum Mobile
- Pb connecter dvd externe et tv - Forum Téléviseurs
6 réponses
Plus précisément si tu veux le lancer en parallèle, fork() pour créer un processus fils suivi de exec() pour lancer ton programme externe.
je l'avais deja dit sur ce poste :
http://www.commentcamarche.net/forum/affich 6959352 c lancer un programme silencieusement#dernier
http://www.commentcamarche.net/forum/affich 6959352 c lancer un programme silencieusement#dernier
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
un fork est une fonction qui premet de creer un processus fils a celui qui est en cour et tu l'utilise comme ceci
pid = fork();
/* En cas de reussite du fork, le pere et le fils poursuivent leur
execution a partir d'ici. La valeur de pid permet de distinguer
le pere du fils.
*/
switch(pid) {
case -1: /* erreur dans fork() */
fprintf(stderr,"error %d in fork: %s\n",errno,sys_errlist[errno]);
exit(errno);
case 0: /* on est dans le fils */
break;
default: /* on est dans le pere */
}
}
pid = fork();
/* En cas de reussite du fork, le pere et le fils poursuivent leur
execution a partir d'ici. La valeur de pid permet de distinguer
le pere du fils.
*/
switch(pid) {
case -1: /* erreur dans fork() */
fprintf(stderr,"error %d in fork: %s\n",errno,sys_errlist[errno]);
exit(errno);
case 0: /* on est dans le fils */
break;
default: /* on est dans le pere */
}
}
L'intérêt d'utiliser un fork() avant de lancer la fonction exec() c'est que cette dernière va effacer ENTIEREMENT l'ensemble du code qui la suit... Ainsi tu peux faire :
pid = fork()
if(pid == 0){
// On est dans le processus fils
exec(/*les différents arguments, jette un coup d'oeil dans le man ;) */);
// Le code qui suit ne sera jamais executé sauf si il y a une erreur au moment du lancement de la fonction exec
// L'empechant de s'exécuter
fprintf(stderr, "Erreur lors de le lancement de la fonction exec()");
perror("exec");
} else {
// Ici, on est dans le processus père
}