Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       bsd_signal - обрабатывает сигналы согласно семантике BSD

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <signal.h>

       typedef void (*sighandler_t)(int);

       sighandler_t bsd_signal(int signum, sighandler_t handler);

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

       bsd_signal():
           Since glibc 2.26:
               _XOPEN_SOURCE >= 500
                   && ! (_POSIX_C_SOURCE >= 200809L)
           glibc 2.25 and earlier:
               _XOPEN_SOURCE

ОПИСАНИЕ

       Функция bsd_signal() ожидает те же аргументы и выполняет ту же задачу, что и signal(2).

       Различие  между ними в том, что bsd_signal() гарантированно предоставляет надёжную семантику сигналов, то
       есть: a) обработчик сигнала не сбрасывается  в  значение  по  умолчанию,  при  его  вызове;  b)  доставка
       последующих  экземпляров  сигнала  блокируется  до  тех пор, пока выполняется обработчик сигнала; c) если
       обработчик  сигнала  прерывает  блокирующий   системный   вызов,   то   системный   вызов   автоматически
       перезапускается. Переносимое приложение не может полагаться на signal(2), если ему нужны такие гарантии.

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

       Функция bsd_signal() возвращает предыдущее значение обработчика сигнала или SIG_ERR при ошибке.

ОШИБКИ

       Как в signal(2).

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ ИнтерфейсАтрибутЗначение │
       ├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │ bsd_signal()                                                        │ Безвредность в нитях │ MT-Safe  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘

ВЕРСИИ

       Избегайте использования bsd_signal(), используйте вместо неё sigaction(2).

       В  современных  Linux-системах bsd_signal() и signal(2) эквивалентны. Однако на старых системах signal(2)
       предоставляет ненадежную семантику сигналов. Подробности см. в signal(2).

       Используемый параметр sighandler_t является расширением GNU; данный тип определён только  в  том  случае,
       если определён макрос _GNU_SOURCE.

СТАНДАРТЫ

       Отсутствуют.

ИСТОРИЯ

       4.2BSD, POSIX.1-2001.  Removed in POSIX.1-2008, recommending the use of sigaction(2)  instead.

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

       sigaction(2), signal(2), sysv_signal(3), signal(7)

ПЕРЕВОД

       Русский  перевод  этой  страницы руководства разработал(и) Artyom Kunyov <artkun@guitarplayer.ru>, Azamat
       Hackimov <azamat.hackimov@gmail.com>, Dmitriy  Ovchinnikov  <dmitriyxt5@gmail.com>,  Dmitry  Bolkhovskikh
       <d20052005@yandex.ru>,  ITriskTI  <ITriskTI@gmail.com>,  Yuri  Kozlov  <yuray@komyakino.ru>,  Иван Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                    bsd_signal(3)