1 pièce(s) jointe(s)
création de n processus fils avec fork
Bonjour,
Je dois réaliser un programme qui va créer n processus en prenant la forme de cet arbre :
Pièce jointe 189225
J'ai réalisé le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
int main()
{
int i,n;
if(scanf("%d",&n)!=1)
return -1;
for(i=0; i<n; i++){
fork();
printf("pid: %d ppid: %d\n", getpid(), getppid() );
}
sleep(1);
return 0;
} |
Sauf que ceci ne fait pas ce qui met demandé, je ne me retrouve pas avec n processus fils, mais avec bien plus de processus créé qui n'ont pas tous comme parent le premier processus.
exemple de sortit avec 3
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
pid: 3103 ppid: 2676
pid: 3103 ppid: 2676
pid: 3103 ppid: 2676
pid: 3106 ppid: 3103
pid: 3105 ppid: 3103
pid: 3105 ppid: 3103
pid: 3107 ppid: 3105
pid: 3104 ppid: 3103
pid: 3104 ppid: 3103
pid: 3104 ppid: 3103
pid: 3109 ppid: 3104
pid: 3108 ppid: 3104
pid: 3108 ppid: 3104
pid: 3110 ppid: 3108 |
J'ai donc dans ce cas 10 processus fils au lieu de 3 et qui non pas tous comme père le processus 3103.
Pourriez-vous m'éclaircir sur comment réaliser ce programme. Ainsi que m'expliquer mes erreurs.
Merci