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 setzen
errno, 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 <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.- Nutzung
sigemptysetDie Funktion initialisiert die Signalmenge als leer. - Nutzung
sigaddsetDie Funktion wirdSIGINTDas Signal wird zur Signalmenge hinzugefügt. - Nutzung
sigismemberDie Funktion prüft, ob die Signalmenge enthältSIGINTundSIGTERMSignal. - Die Ausgabe zeigt
SIGINTsignal 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.