Signaux

Interception de signaux

Écrire un programme qui cherche à intercepter tous les signaux de 1 à (_NSIG - 1), puis se met en attente dans une boucle infinie. Pour chaque signal reçu, le programme devra afficher un message contenant le numéro du signal reçu.

Tester le programme en lui envoyant des signaux, soit avec la commande kill, soit via des raccourcis du terminal (Ctrl-C, Ctrl-\, Ctrl-Z, ...).

Vous écrirez quatre versions de votre programme :

  1. en utilisant la fonction signal(2) ou sigaction(2) ;
  2. en implémentant les deux sémantiques vues en cours (réarmement automatique ou non).

Synchronisation de processus

On souhaite afficher 10 lignes "IUT Belfort Montbéliard" à l'aide de 3 processus.  Pour cela, on crée 3 processus fils : Fils1, Fils2 et Fils3. Chaque processus se met en attente de récecption du signal SIGUSR1.

À réception du signal SIGUSR1 :

Le père commence par envoyer un signal SIGURS1 à Fils3. Lorsque le nombre de messages a été atteint, le père tue les processus fils et attend leur fin avant de se terminer lui-même.

Redirections (partie facultative)

Écrire un programme :

execute **[**-i entrée**]** **[**-o sortie**]** **[**-e erreur**]** **[**--**]** commande **[**args...**]**

qui exécute la commande passée en paramètre en redirigeant, lorsque les options sont spécifiées: