La librairie <signal.h>
permet de gérer les signaux produits par votre système d'exploitation.
Un signal est un message émit à destination d'un processus (ou d'un groupe de processus) pour l'informer que quelque chose vient de survenir ou pour lui demander
de réaliser une tâche particulière. Par exemple :
SIGTERM (SIGnal TERMinate) : ce message demande au processus de se terminer.
SIGFPE (SIGnal Floating-Point Exception) : Opération arithmétique erronée, telle que division du zéro ou opération entraînant un dépassement de capacité.
Un signal peut être emit en mode « ligne de commande », via la commande kill
sous système Unix/Linux, ou par programmation, via la fonction
raise
.
Nom | Type | Description | Depuis |
---|---|---|---|
raise | fonction | Cette fonction permet d'envoyer un signal au processus courant. | C89 |
signal | fonction | Cette fonction permet de connecter un fonction de traitement de signal à un signal particulier. | C89 |
Voici la liste des signaux supportés par le standard C ISO 2018.
Nom du signal | Signification | Description |
---|---|---|
SIGABRT | Signal Abort | Terminaison anormale, normalement initiée par la fonction abort |
SIGFPE | Signal Floating-Point Exception | Opération arithmétique erronée, telle que division du zéro ou opération entraînant un dépassement de capacité. Attention, ce signal peut aussi déclencher suite à des manipulation de valeur numérique sans virgule flottante. |
SIGILL | Signal Illegal Instruction | Exécution d'une instruction non conforme. Cela est généralement dû à une corruption du code ou à une tentative d'exécution de données. |
SIGINT | Signal Interrupt | Un signal d'interruption généralement généré par l'utilisateur de l'application. |
SIGSEGV | Signal Segmentation Violation | Accès à un segment de mémoire virtuelle non mappé en mémoire physique ou tentative de modification d'un segment de mémoire configuré en lecture seule. |
SIGTERM | Signal Terminate | Signal de demande de terminaison du programme. |
Les fonctions suivantes ne font pas partie de la norme C ISO : elles ne sont donc pas disponibles sur tous les compilateurs. Néanmoins, si vous utilisez un système UNIX/Linux, alors vous êtes compatible avec la norme POSIX (Portable Operating System Interface - X-Window). Dans ce cas vous pouvez aussi utiliser ces fonctions.
Nom | Type | Description | Depuis |
---|---|---|---|
kill | fonction | Cette fonction permet d'envoyer un signal à un processus donné (via son PID). | POSIX |
sigaction | fonction | Récupère et/ou change l'action pour un signal donné. | POSIX |
sigandset | fonction | POSIX | |
sigdelset | fonction | POSIX | |
sigemptyset | fonction | POSIX | |
sigfillset | fonction | POSIX | |
sigisemptyset | fonction | POSIX | |
sigismember | fonction | POSIX | |
sigorset | fonction | POSIX | |
sigpending | fonction | POSIX | |
sigprocmask | fonction | POSIX | |
sigqueue | fonction | POSIX | |
sigsuspend | fonction | POSIX | |
sigtimedwait | fonction | POSIX | |
sigwait | fonction | POSIX | |
sigwaitinfo | fonction | POSIX |
Pour obtenir la liste de tous les signaux supportés par votre système POSIX (Unix/Linux) vous pouvez exécuter la commande suivante :
$> kill -l
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 :