SIGSETOPS(3)

ИМЯ
sigemptyset, sigfillset, sigaddset, sigdelset, sigismember - операции с набором сигналов POSIX

ОБЗОР
#include <signal.h>

int sigemptyset(sigset_t *set);

int sigfillset(sigset_t *set);

int sigaddset(sigset_t *set, int signum);

int sigdelset(sigset_t *set, int signum);

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

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

sigemptyset(), sigfillset(), sigaddset(), sigdelset(), sigismember():
    _POSIX_C_SOURCE

ОПИСАНИЕ
Эти функции позволяют управлять наборами сигналов POSIX.

Функция sigemptyset() инициализирует набор сигналов, задаваемый set, пустым значением, то есть все сигналы исключены из набора.

Функция sigfillset() инициализирует set максимальным значением, то есть все сигналы входят в набор.

Функция sigaddset() и sigdelset(), соответственно, добавляет и удаляет сигнал signum из set.

Функция sigismember() проверяет, является ли signum членом набора set.

Объекты типа sigset_t должны быть инициированы вызовом sigemptyset() или sigfillset() до передачи в функции sigaddset(), sigdelset() и sigismember(), или другие дополнительные функции glibc, описанные ниже (sigisemptyset(), sigandset() и sigorset()). Если этого не делать, то результат не определён.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функции sigemptyset(), sigfillset(), sigaddset() и sigdelset() возвращают 0 и -1 при ошибке.

Функция sigismember() возвращает 1, если signum является членом набора set, 0, если signum не является членом и -1 при ошибке. При ошибке эти функции изменяют значение errno соответствующим образом.

ОШИБКИ

EINVAL
    В sig задан неправильный сигнал.

АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение
sigemptyset(), sigfillset(), sigaddset(), sigdelset(), sigismember(), sigisemptyset(), sigorset(), sigandset() | Безвредность в нитях | MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX.1-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ
При создании заполненного набора сигналов функция glibc для sigfillset() не включает два сигнала реального времени, которые используются внутри реализации NPTL. Подробности смотрите в nptl(7).

  Расширения glibc
Если определён макрос тестирования свойств _GNU_SOURCE, то <signal.h> поставляет три другие функции для управления набором сигналов:
int sigisemptyset(const sigset_t *set);
int sigorset(sigset_t *dest, const sigset_t *left,
              const sigset_t *right);
int sigandset(sigset_t *dest, const sigset_t *left,
              const sigset_t *right);
Функция sigisemptyset() возвращает 1, если set не содержит сигналов и 0 в противном случае. Функция sigorset() помещает объединение наборов left и right в dest. Функция sigandset() помещает пересечение наборов left и right в dest. При успешном выполнении обе функции возвращают 0 и -1 при ошибке.

Эти функции являются нестандартными (но в некоторых других системах имеют подобные)и их лучше не использовать в переносимых приложениях.

СМОТРИТЕ ТАКЖЕ
sigaction(2), sigpending(2), sigprocmask(2), sigsuspend(2)