SIGPENDING(2)

ИМЯ
sigpending - проверка ожидающих сигналов

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

int sigpending(sigset_t *set);

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

sigpending(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_SOURCE

ОПИСАНИЕ

Вызов sigpending() возвращает набор сигналов, которые ожидают доставки в вызвавшую нить (т.е., сигналы, возникшие пока были заблокированы). Маска ожидающих сигналов возвращается в set.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функция sigpending() возвращает 0 и -1 при ошибке. В случае ошибки в errno указывается номер ошибки.

ОШИБКИ

EFAULT
    Аргумент set указывает на память в недопустимой части адресуемого пространства.

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

ЗАМЕЧАНИЯ
Подробная информация о работе с наборами сигналов есть на странице sigsetops(3). Если сигнал заблокирован и имеет обработчик «игнорировать», то он не добавляется в маску ожидающих сигналов при генерации. Набор сигналов, ожидающих обработки в нити, представляет собой объединение набора сигналов, ожидающих обработки в этой нити и набора сигналов, ожидающих обработки всем процессом (см. signal(7)). Потомок, созданный с помощью fork(2), первоначально имеет пустой набор ожидающих сигналов; набор ожидающих сигналов сохраняется при вызове execve(2).

ДЕФЕКТЫ
В версиях glibc до 2.2.1 включительно, был дефект в обёрточной функции к sigpending(), из-за которого возвращалась некорректная информация об ожидающих сигналах реального времени.

СМОТРИТЕ ТАКЖЕ
kill(2), sigaction(2), signal(2), sigprocmask(2), sigsuspend(2), sigsetops(3), signal(7)