ИМЯ

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

LIBRARY

Standard C library ( libc, -lc)

СИНТАКСИС

#include <signal.h>
int sigpending(sigset_t *set);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
sigpending():
    _POSIX_C_SOURCE

ОПИСАНИЕ

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

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

sigpending() returns 0 on success. On failure, -1 is returned and errno is set to indicate the error.

ОШИБКИ

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(), если он есть в ядре.

ДЕФЕКТЫ

Up to and including glibc 2.2.1, there is a bug in the wrapper function for sigpending() which means that information about pending real-time signals is not correctly returned.

СМ. ТАКЖЕ

kill(2), sigaction(2), signal(2), sigprocmask(2), sigsuspend(2), sigsetops(3), signal(7)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Alexander Golubev <[email protected]>, Azamat Hackimov <[email protected]>, Hotellook, Nikita <[email protected]>, Spiros Georgaras <[email protected]>, Vladislav <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]

Recommended readings

Pages related to rt_sigpending you should read also: