Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

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

LIBRARY

       Standard C library (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  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘

СТАНДАРТЫ

       4.2BSD  и  POSIX.1-2001.  В  POSIX.1-2008  спецификация  bsd_signal()  удалена,  вместо неё рекомендуется
       использовать sigaction(2).

ЗАМЕЧАНИЯ

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

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

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

СМ. ТАКЖЕ

       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>

       Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
       или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если  вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
       на man-pages-ru-talks@lists.sourceforge.net.

Linux man-pages 6.03                            5 февраля 2023 г.                                  bsd_signal(3)