table of contents
sigpending(2) | System Calls Manual | sigpending(2) |
ИМЯ¶
sigpending, rt_sigpending - проверка ожидающих сигналов
LIBRARY¶
Standard C library (libc, -lc)
СИНТАКСИС¶
#include <signal.h>
int sigpending(sigset_t *set);
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-2008.
ИСТОРИЯ¶
POSIX.1-2001.
Отличия между библиотекой C и ядром¶
Первоначально, системный вызов Linux назывался sigpending(). Однако, с добавлением сигналов реального времени в Linux 2.2, 32-битный аргумент sigset_t неизменяемого размера, поддерживаемый этим системным вызовом, не мог больше использоваться. В результате был добавлен новый системный вызов rt_sigpending() с увеличенным типом sigset_t. У нового системного вызова появился второй аргумент, size_t sigsetsize, в котором указывается размер (в байтах) набора сигналов set. Обёрточная функция glibc sigpending() скрывает это и вызывает rt_sigpending(), если он есть в ядре.
ПРИМЕЧАНИЯ¶
Подробная информация о работе с наборами сигналов есть на странице sigsetops(3).
Если сигнал заблокирован и имеет обработчик «игнорировать», то он не добавляется в маску ожидающих сигналов при генерации.
Набор сигналов, ожидающих обработки в нити, представляет собой объединение набора сигналов, ожидающих обработки в этой нити и набора сигналов, ожидающих обработки всем процессом (см. signal(7)).
Потомок, созданный с помощью fork(2), первоначально имеет пустой набор ожидающих сигналов; набор ожидающих сигналов сохраняется при вызове execve(2).
ОШИБКИ¶
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 <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.
2 мая 2024 г. | Linux man-pages (unreleased) |