Bonjour à tous j'essaye de comprendre le programme ci-dessous cependant je ne suis pas sur de ce que j'en ai compris si quelqu'un pouvait me confirmer tout cela ce serait top !
Merci d'avance pour vos réponses en vous souhaitant de bonne fins de vacances !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 int main (int argc, char* argv[]) { int status, i, cpt = 0; for (i=1 ; i<argc; i++) { if ( fork() == 0 ) { //Création d'un processus fil// execlp (argv[i] , argv[i] , NULL); //Appel à la fonction execlp et remplacement du code d'exécution du fils par ce qui est donné en ligne de commande exit(10); //Cette instruction de fin du processus fils ne s'exécutera jamais } wait(&status); // Le père attend le fils if( (WEXITSATUS(status) == 10) { //On ne rentrera jamais dans cette boucle car le exit(10) n'aura jamais lieu printf("%s\n", argv[i]) ; //Affiche l'agument passé en ligne de commande cpt++; } } printf(cpt = %d\n, cpt); // Affiche le nbre de tours effectués return 0; }
Partager