Executer en programe externe en c
spider13
Messages postés
3
Statut
Membre
-
Sri Lumpa Messages postés 177 Statut Membre -
Sri Lumpa Messages postés 177 Statut Membre -
Bonjour,est ce qu'on peut executer un programe externe en c?
Configuration: Linux Suse Firefox 2.0.0.6
6 réponses
-
man exec !
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/exec.3.html -
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 -
-
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 */
}
} -
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 }