Prenons cet exemple:
int main(int argc, char ** argv){
int i;
for(i=0; i < atoi(argv[1]); i++){
if(fork()>0) printf("salut, je suis le processus n°: %d, mon pid est: %d, mon ppid est: %d \n", i, getpid(), getppid());
else exit(0);
}
}
/*
bash-3.00$ ./a.out 3
salut, je suis le processus n: 0, mon pid est: 30492, mon ppid est: 5442
salut, je suis le processus n: 1, mon pid est: 30492, mon ppid est: 5442
salut, je suis le processus n: 2, mon pid est: 30492, mon ppid est: 5442
cela me creer bien trois processus mais tous identique, étant donné qu´ils ont le meme pid, donc en fait j´en ai créé qu´un seul?
De plus, au début, j´avais fais ça:
int main(int argc, char ** argv){
int i;
for(i=0; i < atoi(argv[1]); i++){
fork();
}
}
Et ça m´a créé je crois 7 processus.
Mais je ne comprend pas vraiement pourquoi.