54 lines
2.3 KiB
C
Raw Normal View History

2020-05-02 00:01:44 +02:00
/**********************************************************/
/* DUT INFORMATIQUE - M311 - R. CHIGNOLI */
/* p_multi_fork_signal : Apr<70>s fork, */
/* - PERE : Affiche son pid et ppid, */
/* Ignore le signal SIGINT */
/* S'arrete <20> 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 : <20> la fin du scenario, il ne reste que les trois */
/* sous-fils arretable par envoi de signaux SIGUSR2 */
/**********************************************************/
# include <stdio.h>
# include <signal.h>
/**********************/
/* 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 */
/**********************/
}
}