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