Bonjour,

Je dois réaliser un programme qui va créer n processus en prenant la forme de cet arbre :
Nom : 19d5bf1c13bb566111197147721614ce.png
Affichages : 8585
Taille : 2,3 Ko

J'ai réalisé le code suivant :
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
 
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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