Fonctions de la bibliothèque Csigismember()
Bibliothèque standard C - <signal.h>
Description
sigismemberLa fonction est une fonction de la bibliothèque standard C, utilisée pour vérifier si un signal spécifique se trouve dans l'ensemble de signaux. Cette fonction est définie dans<signal.h>Dans le fichier d'en-tête.
Syntaxe
int sigismember(const sigset_t *set, int signo);
Paramètre
const sigset_t *set: pointe vers unsigset_tUne variable de type ensemble de signaux.int signo: Le numéro de signal à vérifier.
Valeur de retour
- Si le signal se trouve dans l'ensemble de signaux, renvoyer 1.
- Si le signal ne se trouve pas dans l'ensemble de signaux, renvoyer 0.
- En cas d'erreur, renvoyer -1 et définir
errnopour indiquer le type d'erreur.
Exemple
Ce qui suit est un exemple utilisantsigismemberUn exemple de programme pour la fonction permettant de vérifier si un ensemble de signaux contient un signal spécifique. Le programme initialise un ensemble de signaux vide, ajouteSIGINTle signal à l'ensemble de signaux, et vérifie si l'ensemble de signaux contientSIGINTsignal.
Exemple
#include <signal.h>
int main() {
sigset_t set;
// Initialiser l'ensemble de signaux à vide
if (sigemptyset(&set) == -1) {
perror("sigemptyset");
return 1;
}
// ajouter SIGINT à l'ensemble de signaux
if (sigaddset(&set, SIGINT) == -1) {
perror("sigaddset");
return 1;
}
// Vérifier si l'ensemble de signaux contient SIGINT
if (sigismember(&set, SIGINT)) {
printf("SIGINT est dans l'ensemble\n");
} else {
printf("SIGINT n'est pas dans l'ensemble\n");
}
// vérifier si l'ensemble de signaux contient SIGTERM
if (sigismember(&set, SIGTERM)) {
printf("SIGTERM est dans l'ensemble\n");
} else {
printf("SIGTERM n'est pas dans l'ensemble\n");
}
return 0;
}
La sortie possible de l'exécution du programme d'exemple ci-dessus est la suivante :
SIGINT is in the set SIGTERM is not in the set
Le programme initialise un ensemble de signaux vide, etSIGINTle signal à l'ensemble de signaux, et vérifie si l'ensemble de signaux contientSIGINTetSIGTERMsignal, les résultats montrentSIGINTsignal est dans l'ensemble de signaux, tandis queSIGTERMsignal n'est pas dans l'ensemble de signaux.
Explication
sigset_t set;: Définit une variable d'ensemble de signaux.- Utilisation
sigemptysetLa fonction initialise l'ensemble de signaux à vide. - Utilisation
sigaddsetLa fonction vaSIGINTLe signal est ajouté à l'ensemble de signaux. - Utilisation
sigismemberLa fonction vérifie si l'ensemble de signaux contientSIGINTetSIGTERMsignal. - La sortie montre
SIGINTsignal est dans l'ensemble de signaux, tandis queSIGTERMsignal n'est pas dans l'ensemble de signaux.
Notes
sigismemberLa fonction est utilisée pour vérifier si un signal spécifique se trouve dans l'ensemble de signaux.- Si le numéro de signal est invalide,
sigismemberla fonction renverra -1 et définiraerrnopour indiquer le type d'erreur.