Bonjour

Je voudrais créer 4 processus de 3 façons différentes :



Voici mon main() :

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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
int main()
{
	pid_t pid;
 
cerr<<"------avant le fork------"<<endl;
 
	pid = fork();
 
cerr<<"------apres le fork------"<<endl;
 
/* Si pid > 0 on est dans le processus pere
        pid = 0 processus fils
        pid < 0 le fork n'a pas fonctionne */
	if (pid > 0) {
 
 
       for (int i=0;i <11 ; i++)
	    cout << i << endl;
        cout<<"\tProcessus pere (valeur pid="<<pid<<"), getpid="<<getpid()<<" , getppid="<<getppid()<<endl;
		sleep(5);
			}
	else if (pid == 0){
	    for (int i=20;i <31 ; i++)
	    cout << i << endl;
		cout<<"\tProcessus fils valeur pid="<<pid<<"), getpid="<<getpid()<<" , getppid="<<getppid()<<endl;
		sleep(5);
		}
	else
		cerr<<"Erreur a la creation du processus"<<endl;
 
cerr<<"------avant le return du main()------"<<endl;
 
return(0);
}
Donc le père affiche des entiers de 1 à 10 , et le premier fils de 10 à 20 .
Comment puis-je faire pour que le fils 1 affiche 10 à 20 , le fils2 de 20 à 30 , le fils3 de 30 à 40 ?

Pour l'une des façons ,c 'est à dire père -> fils1 -> fils2 -> fils3 , j'ai pensé rajouter au fils1 un fork , donc au fils de fils1 , c'est à dire fils2 , un nouveau fork ?

Enfin j'arrive pas à organiser tout ça

Merci d'avance