C-Bibliotheksfunktionensigismember()

C-Standardbibliothek - <signal.h>

Beschreibung

sigismemberDie Funktion ist eine Funktion in der C-Standardbibliothek und wird verwendet, um zu prüfen, ob ein bestimmtes Signal in der Signalmenge enthalten ist. Diese Funktion ist definiert in<signal.h>In der Header-Datei.

Syntax

int sigismember(const sigset_t *set, int signo);

Parameter

  • const sigset_t *set: zeigt auf einesigset_tEine Signalmenge-Variable vom Typ.
  • int signo: Die zu prüfende Signalnummer.

Rückgabewert

  • Wenn das Signal in der Signalmenge enthalten ist, wird 1 zurückgegeben.
  • Wenn das Signal nicht in der Signalmenge enthalten ist, wird 0 zurückgegeben.
  • Im Fehlerfall -1 zurückgeben und setzenerrno, um die Art des Fehlers anzugeben.

Beispiel

Das Folgende ist ein Beispiel unter Verwendung vonsigismemberEin Beispielprogramm für die Funktion, um zu prüfen, ob eine Signalmenge ein bestimmtes Signal enthält. Das Programm initialisiert eine leere Signalmenge, fügtSIGINTSignal zur Signalmenge hinzu und prüft, ob die Signalmenge enthältSIGINTSignal.

Beispiel

#include <stdio.h>
#include <signal.h>

int main() {
    sigset_t set;

    // Signal-Set auf leer initialisieren
    if (sigemptyset(&set) == -1) {
        perror("sigemptyset");
        return 1;
    }

    // SIGINT zum Signal-Set hinzufügen
    if (sigaddset(&set, SIGINT) == -1) {
        perror("sigaddset");
        return 1;
    }

    // Prüfen, ob das Signal-Set SIGINT enthält
    if (sigismember(&set, SIGINT)) {
        printf("SIGINT ist im Signal-Set\n");
    } else {
        printf("SIGINT ist nicht im Signal-Set\n");
    }

    // prüfen, ob die Signalmenge SIGTERM enthält
    if (sigismember(&set, SIGTERM)) {
        printf("SIGTERM ist in der Menge"\n");
    } else {
        printf("SIGTERM ist nicht in der Menge"\n");
    }

    return 0;
}

Die mögliche Ausgabe beim Ausführen des obigen Beispielprogramms ist wie folgt:

SIGINT is in the set
SIGTERM is not in the set

Das Programm initialisiert eine leere Signalmenge, undSIGINTSignal zur Signalmenge hinzu und prüft, ob die Signalmenge enthältSIGINTundSIGTERMsignal, zeigen die ErgebnisseSIGINTsignal ist in der Signalmenge, währendSIGTERMsignal ist nicht in der Signalmenge.

Erklärung

  • sigset_t set;: Definiert eine Signalmenge-Variable.
  • NutzungsigemptysetDie Funktion initialisiert die Signalmenge als leer.
  • NutzungsigaddsetDie Funktion wirdSIGINTDas Signal wird zur Signalmenge hinzugefügt.
  • NutzungsigismemberDie Funktion prüft, ob die Signalmenge enthältSIGINTundSIGTERMSignal.
  • Die Ausgabe zeigtSIGINTsignal ist in der Signalmenge, währendSIGTERMsignal ist nicht in der Signalmenge.

Hinweise

  • sigismemberDie Funktion wird verwendet, um zu prüfen, ob ein bestimmtes Signal in der Signalmenge enthalten ist.
  • Wenn die Signalnummer ungültig ist,sigismembergibt die Funktion -1 zurück und setzterrno, um die Art des Fehlers anzugeben.

C-Standardbibliothek - <signal.h>

Weitere Erweiterungen