Partage d'une variable entre les processus fils
salut tous le monde j'ai trois gros problemes . commencons par le premier :
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
// ensemble d'include par ici
int nbrVoiture[]={0,0,0,0} // un tableau de4 entiers initialisés a 0;
main()
{
// bla bla bla
for (i = 0 ; i < 10 ; i++)
{
if ((id = fork()) == -1)
{
printf("fork processus principale\n");
exit(0);
}
else
{
if (id == 0)
{
uneMethode();
}
exit(0);
}
}
void uneMethode()
{
int j;
for(j=0;j<4;j++)
nbrVoiture[j]++;
for(j=0;j<4;j++)
printf("la voiture numero %d devient %d\n",j,nbrVoiture[j]);
}
} |
le probleme dans ce code est que nbrVoiture[j]++ n'a un effet que sur l'appel local en effet uneMethode() ne m'affiche que des 1 pour chaque appel .
Normalement nbrVoiture est une variable globale et les modifications doivent restées a la fin de uneMethode()
J' ai essayé aussi de passer par adreese nbrVoiture mais c'a na pas marché :? :( :?
[Modéré par Ludovc fernàndez]
Veuillez respecter les règles du forum SVP : Ajout du tag TITRE