Функции библиотеки Csigismember()
Стандартная библиотека C - <signal.h>
Описание
sigismemberФункция входит в стандартную библиотеку C и используется для проверки, находится ли конкретный сигнал в наборе сигналов. Эта функция определена в<signal.h>В заголовочном файле.
Синтаксис
int sigismember(const sigset_t *set, int signo);
Параметр
const sigset_t *set: указывает наsigset_tПеременная набора сигналов типа.int signo: Номер сигнала для проверки.
Возвращаемое значение
- Если сигнал находится в наборе сигналов, вернуть 1.
- Если сигнал не находится в наборе сигналов, вернуть 0.
- При ошибке вернуть -1 и установить
errnoдля указания типа ошибки.
Пример
Ниже приведён пример использованияsigismemberПример программы для функции проверки того, содержит ли набор сигналов конкретный сигнал. Программа инициализирует пустой набор сигналов, добавляетSIGINTсигнал в набор сигналов и проверяет, содержит ли набор сигналовSIGINTсигнал.
Пример
#include <signal.h>
int main() {
sigset_t set;
// Инициализировать набор сигналов пустым
if (sigemptyset(&set) == -1) {
perror("sigemptyset");
return 1;
}
// добавить SIGINT в набор сигналов
if (sigaddset(&set, SIGINT) == -1) {
perror("sigaddset");
return 1;
}
// Проверить, содержит ли набор сигналов SIGINT
if (sigismember(&set, SIGINT)) {
printf("SIGINT находится в наборе\n");
} else {
printf("SIGINT отсутствует в наборе\n");
}
// проверить, содержит ли набор сигналов SIGTERM
if (sigismember(&set, SIGTERM)) {
printf("SIGTERM входит в набор"\n");
} else {
printf("SIGTERM не входит в набор"\n");
}
return 0;
}
Возможный вывод при запуске приведённой выше примерной программы выглядит так:
SIGINT is in the set SIGTERM is not in the set
Программа инициализирует пустой набор сигналов, иSIGINTсигнал в набор сигналов и проверяет, содержит ли набор сигналовSIGINTиSIGTERMсигнал, результаты показываютSIGINTсигнал находится в наборе сигналов, в то время какSIGTERMсигнал не находится в наборе сигналов.
Объяснение
sigset_t set;: Определяет переменную набора сигналов.- Использование
sigemptysetФункция инициализирует набор сигналов как пустой. - Использование
sigaddsetФункция будетSIGINTСигнал добавляется в набор сигналов. - Использование
sigismemberФункция проверяет, содержит ли набор сигналовSIGINTиSIGTERMсигнал. - Вывод показывает
SIGINTсигнал находится в наборе сигналов, в то время какSIGTERMсигнал не находится в наборе сигналов.
Примечания
sigismemberФункция используется для проверки того, входит ли конкретный сигнал в набор сигналов.- Если номер сигнала недействителен,
sigismemberфункция вернёт -1 и установитerrnoдля указания типа ошибки.