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éfinirerrnopour 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 <stdio.h>
#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.
  • UtilisationsigemptysetLa fonction initialise l'ensemble de signaux à vide.
  • UtilisationsigaddsetLa fonction vaSIGINTLe signal est ajouté à l'ensemble de signaux.
  • UtilisationsigismemberLa fonction vérifie si l'ensemble de signaux contientSIGINTetSIGTERMsignal.
  • La sortie montreSIGINTsignal 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.

Bibliothèque standard C - <signal.h>

autres extensions