/* * Un exemple d'utilisation de fork, sleep et waitpid. * * Cours « Systèmes d'exploitation ». * * Sergiu Ivanov */ #include // pour avoir printf #include // pour avoir fork #include // pour avoir waitpid int main() { // fork crée une copie du processus actuel. Après cette ligne il y // aura deux processus qui exécuteront le code ci-dessous. // // Dans le processus qui a initié la création (le père), fork // renverra le numéro unique (le PID) du processus créé (le // fils). Dans le fils, fork renverra 0. int pidFils = fork(); if(pidFils == 0) { // fork a renvoyé 0, donc ce code est exécuté dans le fils. printf("Coucou, papa"); // Attendre 1 seconde pour faire semblant de travailler dur. sleep(1); } else { // On utilisera la fonction waitpid pour attendre. On doit lui // passer le PID du fils, ainsi que deux autres paramètres de // service. int status; // le code de retour du fils; waitpid(pidFils, &status, 0); // attente fin du fils printf("Je suis ton paiiiire !"); } return 0; }