sigpending

SIGPENDING(2)            Руководство программиста Linux            SIGPENDING(2)



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

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

       int sigpending(sigset_t *set);

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

       sigpending(): _POSIX_C_SOURCE

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

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

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

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

ЗАМЕЧАНИЯ
       Подробная информация о работе с наборами сигналов есть на странице
       sigsetops(3).

       Если сигнал заблокирован и имеет обработчик «игнорировать», то он не
       добавляется в маску ожидающих сигналов при генерации.

       Набор сигналов, ожидающих обработки в нити, представляет собой
       объединение набора сигналов, ожидающих обработки в этой нити и набора
       сигналов, ожидающих обработки всем процессом (см. signal(7)).

       Потомок, созданный с помощью fork(2), первоначально имеет пустой набор
       ожидающих сигналов; набор ожидающих сигналов сохраняется при вызове
       execve(2).

   Отличия между библиотекой C и ядром
       Первоначально, системный вызов Linux назывался sigpending(). Однако, с
       добавлением сигналов реального времени в Linux 2.2, 32-битный аргумент
       sigset_t неизменяемого размера, поддерживаемый этим системным вызовом, не
       мог больше использоваться. В результате был добавлен новый системный
       вызов rt_sigpending() с увеличенным типом sigset_t. У нового системного
       вызова появился второй аргумент, size_t sigsetsize, в котором указывается
       размер (в байтах) набора сигналов set. Обёрточная функция glibc
       sigpending() скрывает это и вызывает rt_sigpending(), если он есть в
       ядре.

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

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



Linux                              2016-03-15                      SIGPENDING(2)