#include <stdio.h> #include <unistd.h> #include <stdlib.h> int main(int argc,char *argv[]) { pid_t pid; int status; pid = fork(); switch(pid) { case -1: // erreur exit(1); case 0: // fils printf("FILS: je travaille\n"); for (int i=0; i<5; i++) { printf("i=%d\n",i); sleep(1); } printf("FILS: j'ai terminé mon travail\n"); exit(0); break; default: // père printf("PERE: Je vais attendre %d\n",pid); waitpid(pid,&status,0); if (WIFEXITED(status)) { printf("Il s'est terminé normalement en faisant appel à exit(%d)\n",WEXITSTATUS(status)); } else { printf("Il a terminé bizarrement\n"); } printf("PERE: C'est la fin pour moi\n"); break; } exit(0); }