Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

La librairie <signal.h> (<csignal> en C++)

Les signaux ISO C


Accès rapide :
Présentation de l'entête <signal.h>
Exemple d'utilisation
Eléments C ISO
Extensions POSIX

Présentation de l'entête <signal.h>

La librairie <signal.h> regroupe les éléments nécessaires à la gestion des signaux. En C ISO, elle fournit essentiellement raise, signal, le type sig_atomic_t et quelques macros standard.

POSIX étend fortement cet entête : ensembles de signaux, masques de signaux, gestionnaires plus précis avec sigaction, attente synchrone de signaux, signaux temps réel et structures comme siginfo_t ou sigevent.

Pour utiliser les éléments proposés par cette librairie, il suffit d'inclure l'entête suivant.

#include <signal.h>

Exemple d'utilisation

L'exemple suivant installe un gestionnaire simple et déclenche volontairement un signal.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>

static void handleSignal( int signalId ) {
    printf( "Signal %d intercepté.\n", signalId );
}

int main() {

    signal( SIGTERM, handleSignal );
    raise( SIGTERM );

    return EXIT_SUCCESS;
}
Exemple d'utilisation de signal.h

Les résultats produits par cet exemple sont :

Signal 15 intercepté.

Eléments C ISO

Nom Type Description Depuis
raise fonction Envoie un signal au processus courant. C89
signal fonction Installe un gestionnaire de signal simple. C89
sig_atomic_t type Type entier utilisable dans un gestionnaire de signal. C89
SIG_DFL, SIG_ERR, SIG_IGN macros Actions spéciales utilisables avec signal. C89
SIGABRT, SIGFPE, SIGILL, SIGINT, SIGSEGV, SIGTERM macros Signaux imposés par le langage C ISO. C89
__STDC_VERSION_SIGNAL_H__ macro Version de l'entête signal.h. C23

Extensions POSIX

Nom Type Description Depuis
codes de siginfo_t macros Constantes POSIX de la librairie signal.h. POSIX
kill fonction La fonction kill envoie un signal à un processus ou à un groupe de processus. Le signal 0 ne délivre pas réellement de signal : il permet de tester l'existence du processus et les droits d'envoi. POSIX
killpg fonction La fonction killpg envoie un signal à tous les processus d'un groupe de processus. POSIX
mcontext_t type Type opaque POSIX représentant la partie machine d'un contexte d'exécution sauvegardé. POSIX
psiginfo fonction La fonction psiginfo écrit sur la sortie d'erreur standard une description construite à partir d'une structure siginfo_t. POSIX
psignal fonction La fonction psignal écrit sur la sortie d'erreur standard un message associé à un numéro de signal. POSIX
pthread_kill fonction La fonction pthread_kill envoie un signal à un thread précis du processus courant. POSIX
pthread_sigmask fonction La fonction pthread_sigmask consulte ou modifie le masque des signaux bloqués du thread courant. POSIX
SA_* macros Constantes POSIX de la librairie signal.h. POSIX
sig2str fonction La fonction sig2str convertit un numéro de signal en nom portable, sans le préfixe SIG. POSIX
SIG2STR_MAX macros Constantes POSIX de la librairie signal.h. POSIX
SIG_BLOCK, SIG_UNBLOCK, SIG_SETMASK macros Constantes POSIX de la librairie signal.h. POSIX
sigaction fonction La fonction sigaction permet d'installer, de consulter ou de remplacer l'action associée à un signal. Elle est plus précise que signal et doit être privilégiée en environnement POSIX. POSIX
sigaddset fonction La fonction sigaddset ajoute un signal à un ensemble de signaux. POSIX
sigaltstack fonction La fonction sigaltstack configure une pile alternative utilisée pour certains gestionnaires de signaux. POSIX
sigdelset fonction La fonction sigdelset retire un signal d'un ensemble de signaux. POSIX
sigemptyset fonction La fonction sigemptyset initialise un ensemble de signaux vide. POSIX
SIGEV_* macros Constantes POSIX de la librairie signal.h. POSIX
sigfillset fonction La fonction sigfillset initialise un ensemble contenant tous les signaux. POSIX
siginfo_t type Type POSIX qui transporte des informations détaillées sur un signal reçu. POSIX
sigismember fonction La fonction sigismember teste la présence d'un signal dans un ensemble. POSIX
signaux POSIX macros Constantes POSIX de la librairie signal.h. POSIX
sigpending fonction La fonction sigpending récupère l'ensemble des signaux en attente pour le processus ou le thread courant. POSIX
sigprocmask fonction La fonction sigprocmask consulte ou modifie le masque des signaux bloqués du processus courant. POSIX
sigqueue fonction La fonction sigqueue envoie un signal à un processus en lui associant une petite valeur applicative. POSIX
SIGRTMIN, SIGRTMAX macros Constantes POSIX de la librairie signal.h. POSIX
sigset_t type Type POSIX utilisé pour représenter un ensemble de signaux. POSIX
SIGSTKSZ, SS_DISABLE, SS_ONSTACK macros Constantes POSIX de la librairie signal.h. POSIX
sigsuspend fonction La fonction sigsuspend remplace temporairement le masque des signaux puis suspend le processus jusqu'à la réception d'un signal. POSIX
sigtimedwait fonction La fonction sigtimedwait attend un signal appartenant à un ensemble, avec une durée maximale d'attente. POSIX
sigwait fonction La fonction sigwait attend de manière synchrone un signal appartenant à un ensemble. POSIX
sigwaitinfo fonction La fonction sigwaitinfo attend un signal et renseigne une structure siginfo_t avec les informations disponibles. POSIX
stack_t type Structure POSIX décrivant une pile alternative de traitement de signal. POSIX
str2sig fonction La fonction str2sig convertit un nom de signal, avec ou sans le préfixe SIG, en numéro de signal. POSIX
struct sigaction type Structure POSIX décrivant l'action associée à un signal. POSIX
struct sigevent type Structure POSIX décrivant la notification à produire lorsqu'un événement asynchrone se produit. POSIX
ucontext_t type Structure POSIX décrivant un contexte d'exécution. Elle peut notamment être reçue par un gestionnaire installé avec SA_SIGINFO. POSIX
union sigval type Union POSIX permettant d'associer une petite valeur entière ou un pointeur à un signal envoyé avec sigqueue. POSIX


Les signaux ISO C




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé