Главная » 2017 » Ноябрь » 21 » man 2 rt_sigpending
01:35
man 2 rt_sigpending

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


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(), из-за которого возвращалась некорректная информация об ожидающих
сигналах реального времени.



СМОТРИТЕ ТАКЖЕ


Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 434 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar