Accès rapide :
Présentation de l'entête <signal.h>
Exemple d'utilisation
Eléments C ISO
Extensions POSIX
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>
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; } |
Les résultats produits par cet exemple sont :
Signal 15 intercepté.
| 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 |
| 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 |
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 :