Sommaire

Traitement des signaux Signaux:traitement

Différents appels système permettent à un programme de modifier la gestion des signaux reçus.

L’appel système signal(), issu du système Unix d’origine, présente des limites et des différences d’implémentation entre systèmes de type Unix. Bien qu’existant dans Linux, cet appel système est en voie d’obsolescence. Il est donc conseillé d’utiliser plutôt son successeur, sigaction(), plus fiable et normalisé POSIX.

Nous présenterons les deux appels système, en commençant par signal(), que l’on peut rencontrer dans des programmes existants, et dont l’interface plus simple peut faciliter les premières expérimentations de traitement des signaux. 

1. Appel système signal()

Syntaxe

#include <signal.h> 
typedef void (*sighandler_t)(int); 
sighandler_t signal(int signum, sighandler_t handler);

Arguments

signum

Numéro du signal à traiter

handler

Traitement du signal : SIG_IGN, SIG_DFL, adresse d’une fonction

Valeur retournée

SIG_ERR

Erreur, errno est positionnée

!= SIG_ERR

Traitement précédent du signal

Description

L’appel système permet de définir quelle action associer à un signal reçu. Il permet d’ignorer le signal (SIG_IGN), de le réassocier à son action par défaut (SIG_DFL), ou de l’associer à une fonction gestionnaire ...