Problème C

Résolu
haduss Messages postés 252 Statut Membre -  
haduss Messages postés 252 Statut Membre -
bonsoir,
j'ai un petit programme qui crée un processus pèere et un processus fils mais il contien des instructions dont je n'ai pas bien saisi leur role dans le programme :/ (je precise je ne suis pas super bon programmation et le language C est assez nouveau pour moi)
bon les instruction sont en gras il y a la boucle while et getchar.merci de m'aider

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main () {
int i=0,x=10;
int pid=fork();
if (pid<0)
{
printf("Erreur\n");
}
else {
if (pid==0) {
x=20;
printf ("je suis le processus fils,mon PID est %d,x=%d\n",getpid(),x);
while (1) {
i++;}

}
else {
printf ("je suis le processus père, mon PID est %d,x=%d\n",getpid(),x);
getchar();
exit(0);
}
}
return 0;
}

2 réponses

loupius
 
while (1) { i++; }
Alors là on est peinard, on peut aller prendre un café, deux cafés, trois cafés, ... et quand y'en aura plus on aura même le temps d'aller acheter un autre paquet, de le moudre, de refaire chauffer l'eau et de boire un café, deux cafés, ... ;-) Enfin, tu as compris c'est une boucle infinie; en effet, une fois entré dans la boucle, le test '(1)' est toujours vrai et on refait un tour.
getchar();
Là le programme attend que l'utilisateur tape n'importe quelle touche sur son clavier.

Un détail sur le programme:
- Le programme 'père', avant de se terminer, doit attendre que le processus 'fils' se termine et doit lire le code de retour de celui-ci.
Dans le cas présent, le 'fils' va se poursuivre mais n'aura plus de 'père', ce qui est contraire au principe que tout processus doit avoir un 'père' (sauf évidemment le premier processus), et en conséquence ce 'fils' devient ce que l'on appelle un 'zombie'.

Bonne continuation.
1
haduss Messages postés 252 Statut Membre 43
 
mmmh d'accord :D, merci de ta reponse là j'y vois mieux :).bon debut de journée ;)
0