bsd_signal(3) Library Functions Manual bsd_signal(3)

bsd_signal - gestionarea semnalelor cu semantica BSD

Biblioteca C standard (libc, -lc)

#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

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.

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

Ca și pentru signal(2).

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

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ă.

Niciunul.

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

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

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 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.

2 mai 2024 Pagini de manual de Linux 6.8