.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2005 by Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sigset 3 "20 июля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ sigset, sighold, sigrelse, sigignore \- программный интерфейс сигналов System V .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP .PP \fBtypedef void (*sighandler_t)(int);\fP .PP \fB[[deprecated]] sighandler_t sigset(int \fP\fIsig\fP\fB, sighandler_t \fP\fIdisp\fP\fB);\fP .PP \fB[[deprecated]] int sighold(int \fP\fIsig\fP\fB);\fP \fB[[deprecated]] int sigrelse(int \fP\fIsig\fP\fB);\fP \fB[[deprecated]] int sigignore(int \fP\fIsig\fP\fB);\fP .fi .PP .RS -4 Требования макроса тестирования свойств для glibc (см. \fBfeature_test_macros\fP(7)): .RE .PP \fBsigset\fP(), \fBsighold\fP(), \fBsigrelse\fP(), \fBsigignore\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 .fi .SH ОПИСАНИЕ Данные функции предоставляются glibc для совместимости с программами, в которых используются старый программный интерфейс сигналов System V. Данный программный интерфейс устарел: в новых приложениях нужно использовать программный интерфейс сигналов POSIX (\fBsigaction\fP(2), \fBsigprocmask\fP(2) и т.п.). .PP Функция \fBsigset\fP() изменяет обработку сигнала \fIsig\fP. В аргументе \fIdisp\fP может быть указан адрес функции обработчика сигнала или одна из следующих констант: .TP \fBSIG_DFL\fP Сбросить обработку \fIsig\fP в значение по умолчанию. .TP \fBSIG_IGN\fP Игнорировать \fIsig\fP. .TP \fBSIG_HOLD\fP Добавить \fIsig\fP в маску сигналов процесса, но оставить обработку \fIsig\fP неизменной. .PP Если в \fIdisp\fP задан адрес обработчика сигналов, то при его выполнении \fIsig\fP добавляется в маску сигналов процесса. .PP Если в \fIdisp\fP было указано значение отличное от \fBSIG_HOLD\fP, то \fIsig\fP удаляется из маски сигналов процесса. .PP Обработку сигналов \fBSIGKILL\fP и \fBSIGSTOP\fP невозможно изменить. .PP Функция \fBsighold\fP() добавляет \fIsig\fP в маску сигналов вызвавшего процесса. .PP Функция \fBsigrelse\fP() удаляет \fIsig\fP из маски сигналов вызвавшего процесса. .PP Функция \fBsigignore\fP() устанавливает обработку \fIsig\fP равной \fBSIG_IGN\fP. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении \fBsigset\fP() возвращает \fBSIG_HOLD\fP, если \fIsig\fP был заблокирован до вызова, или предыдущий обработчик сигнала, если блокировки не было. При ошибке \fBsigset\fP() возвращает \-1, а \fIerrno\fP записывает номер ошибки (но смотрите раздел ДЕФЕКТЫ далее). .PP При успешном выполнении функции \fBsighold\fP(), \fBsigrelse\fP() и \fBsigignore\fP() возвращают 0; при ошибке возвращается \-1, а в \fIerrno\fP — номер ошибки. .SH ОШИБКИ Для функции \fBsigset\fP() смотрите раздел ОШИБКИ в \fBsigaction\fP(2) и \fBsigprocmask\fP(2). .PP Для функции \fBsighold\fP() и \fBsigrelse\fP() смотрите раздел ОШИБКИ в \fBsigprocmask\fP(2). .PP Для функции \fBsigignore\fP() смотрите раздел ОШИБКИ в \fBsigaction\fP(2). .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBsigset\fP(), \fBsighold\fP(), \fBsigrelse\fP(), \fBsigignore\fP() T} Безвредность в нитях MT\-Safe .TE .sp 1 .SH СТАНДАРТЫ POSIX.1\-2008. .TP \fIsighandler_t\fP GNU. POSIX.1 uses the same type but without a \fItypedef\fP. .SH ИСТОРИЯ glibc 2.1. SVr4, POSIX.1\-2001. POSIX.1\-2008 marks these functions as obsolete, recommending the use of \fBsigaction\fP(2), \fBsigprocmask\fP(2), \fBpthread_sigmask\fP(3), and \fBsigsuspend\fP(2) instead. .SH ЗАМЕЧАНИЯ Функция \fBsigset\fP() предоставляет семантику надёжной обработки сигналов (как при вызове \fBsigaction\fP(2) с значением \fIsa_mask\fP равным 0). .PP В System V, функция \fBsignal\fP() предоставляет ненадёжную семантику (как при вызове \fBsigaction\fP(2) со значением \fIsa_mask\fP равным \fISA_RESETHAND | SA_NODEFER\fP). В BSD, \fBsignal\fP() предоставляет надёжную семантику. В POSIX.1\-2001 эти аспекты \fBsignal\fP() не определены. Подробности смотрите в \fBsignal\fP(2). .PP Для ожидания сигналов в BSD и System V предоставляется функция \fBsigpause\fP(3), но в других системах она описана с другим аргументом. Подробности смотрите в \fBsigpause\fP(3). .SH ДЕФЕКТЫ Before glibc 2.2, \fBsigset\fP() did not unblock \fIsig\fP if \fIdisp\fP was specified as a value other than \fBSIG_HOLD\fP. .PP .\" See http://sourceware.org/bugzilla/show_bug.cgi?id=1951 Before glibc 2.5, \fBsigset\fP() does not correctly return the previous disposition of the signal in two cases. First, if \fIdisp\fP is specified as \fBSIG_HOLD\fP, then a successful \fBsigset\fP() always returns \fBSIG_HOLD\fP. Instead, it should return the previous disposition of the signal (unless the signal was blocked, in which case \fBSIG_HOLD\fP should be returned). Second, if the signal is currently blocked, then the return value of a successful \fBsigset\fP() should be \fBSIG_HOLD\fP. Instead, the previous disposition of the signal is returned. These problems have been fixed since glibc 2.5. .SH "СМ. ТАКЖЕ" \fBkill\fP(2), \fBpause\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2), \fBsigprocmask\fP(2), \fBraise\fP(3), \fBsigpause\fP(3), \fBsigvec\fP(3), \fBsignal\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .