bsd_signal(3)

NUME
bsd_signal - gestionarea semnalelor cu semantica BSD

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <signal.h>

typedef void (*sighandler_t)(int);

sighandler_t bsd_signal(int signum, sighandler_t handler);

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

bsd_signal():
    Începând cu glibc 2.26:
        _XOPEN_SOURCE >= 500
            && ! (_POSIX_C_SOURCE >= 200809L)
    glibc 2.25 și versiunile anterioare:
        _XOPEN_SOURCE

DESCRIERE
Funcția bsd_signal() primește aceleași argumente și îndeplinește aceeași sarcină ca și signal(2).

Diferența dintre cele două este că bsd_signal() este garantat să ofere o semantică de semnal fiabilă, adică: a) dispoziția semnalului nu este readusă la valoarea implicită atunci când gestionarul este invocat; b) livrarea altor instanțe ale semnalului este blocată în timp ce gestionarul de semnal se execută; și c) dacă gestionarul întrerupe un apel de sistem blocant, atunci apelul de sistem este repornit automat. O aplicație portabilă nu se poate baza pe signal(2) pentru a oferi aceste garanții.

VALOAREA RETURNATĂ
Funcția bsd_signal() returnează valoarea anterioară a gestionarului de semnal sau SIG_ERR în caz de eroare.

ERORI-IEȘIRE
Ca și pentru signal(2).

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
bsd_signal() | Siguranța firelor | MT-Safe

VERSIUNI
Utilizarea funcției bsd_signal() ar trebui evitată; utilizați în schimb sigaction(2).

Pe sistemele Linux moderne, bsd_signal() și signal(2) sunt echivalente. Dar pe sistemele mai vechi, signal(2) oferea o semantică a semnalelor nesigură; consultați signal(2) pentru detalii.

Utilizarea sighandler_t este o extensie GNU; acest tip este definit numai dacă macro de testare a caracteristicii _GNU_SOURCE este definită.

STANDARDE
Niciunul.

ISTORIC
4.2BSD, POSIX.1-2001. Eliminată în POSIX.1-2008, recomandându-se în schimb utilizarea lui sigaction(2).

CONSULTAȚI ȘI
sigaction(2), signal(2), sysv_signal(3), signal(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.