/** * @ Author: JunkJumper * @ Link: https://github.com/JunkJumper * @ Copyright: Creative Common 4.0 (CC BY 4.0) * @ Create Time: 22-10-2020 11:55:28 * @ Modified by: JunkJumper * @ Modified time: 22-10-2020 11:56:56 */ /**********************************************************/ /* DUT INFORMATIQUE - M311 - R. CHIGNOLI */ /* p_multi_fork_signal : Apr�s fork, */ /* - PERE : Affiche son pid et ppid, */ /* Ignore le signal SIGINT */ /* S'arrete � la reception du signal SIGUSR1, */ /* Se met en boucle infinie. */ /* - FILS : Affiche son pid et son ppid, */ /* Cree 3 (sous)fils */ /* Attend un signal SIGTERM de l'un des fils */ /* Envoie un signal SIGINT a son pere, */ /* Se met en boucle infinie. */ /* Envoie le signal SIGUSR1 a son pere a */ /* l'interception du signal SIGTERM puis */ /* meurt. */ /* - Chaque sous-FILS : Affiche son pid et son ppid, */ /* Se desolidarise de son pere, */ /* Attend un signal SIGUSR1 de l'utilisateur, */ /* Se met en boucle infinie. */ /* Envoie le signal SIGTERM vers son pere */ /* a l'interception du signal SIGUSR1. */ /* Se termine en recevant le signal SIGUSR2 */ /* de la part de l'utilisateur. */ /* NB : � la fin du scenario, il ne reste que les trois */ /* sous-fils arretable par envoi de signaux SIGUSR2 */ /**********************************************************/ # include # include /**********************/ /* PARTIE A COMPLETER */ /**********************/ main () { int res; /**********************/ /* PARTIE A COMPLETER */ /**********************/ res = fork(); if (res < 0) printf ("ERREUR FORK"); else if (res == 0) { // FILS /**********************/ /* PARTIE A COMPLETER */ /**********************/ } else { // PERE /**********************/ /* PARTIE A COMPLETER */ /**********************/ } }