54 lines
2.3 KiB
C
54 lines
2.3 KiB
C
|
/**********************************************************/
|
|||
|
/* 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 */
|
|||
|
/**********************/
|
|||
|
}
|
|||
|
}
|