#include <signal.h> // <csignal> en C++
int sigaction( int signalId, const struct sigaction *restrict action, struct sigaction *restrict oldAction );
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.
NULL pour une simple consultation.
La fonction retourne 0 en cas de succès et -1 en cas d'erreur.
L'exemple suivant montre une utilisation simple de cette interface.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#define _POSIX_C_SOURCE 200809L #include <signal.h> #include <stdio.h> #include <stdlib.h> #include <string.h> static void handleSignal( int signalId ) { printf( "Signal %d intercepté.\n", signalId ); } int main() { struct sigaction action; memset( &action, 0, sizeof action ); action.sa_handler = handleSignal; sigemptyset( &action.sa_mask ); sigaction( SIGTERM, &action, NULL ); raise( SIGTERM ); return EXIT_SUCCESS; } |
Les résultats produits par cet exemple sont :
Signal 15 intercepté.
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 :