63 lines
2.4 KiB
C
63 lines
2.4 KiB
C
/**
|
||
* @ 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<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 */
|
||
/**********************/
|
||
}
|
||
}
|