#include #include #include #include #include int main(int argc, char *argv[]){ int nbGenerations; int i; int rc; int status; if (argc != 2){ fprintf(stderr, "USAGE = descendance nbGenerations\n"); return EXIT_FAILURE; } nbGenerations = atoi(argv[1]); /* On cree les generations */ for (i=1 ; i<=nbGenerations ; i++){ rc = fork(); if (rc == 0){ printf("Generation %d : enfant de pid %d ayant pour parent le processus de pid %d\n", i, getpid(), getppid()); }else if (rc > 0){ rc = wait(&status); break; /* Cela permet de sortir du for */ }else{ perror("Souci de fork"); return EXIT_FAILURE; } } return EXIT_SUCCESS; }