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);
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)EN.
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)EN pentru a oferi aceste garanții.
Funcția bsd_signal() returnează valoarea anterioară a gestionarului de semnal sau SIG_ERR în caz de eroare.
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7)EN.
| Interfață | Atribut | Valoare |
| bsd_signal() | Siguranța firelor | MT-Safe |
4.2BSD, POSIX.1-2001. POSIX.1-2008 elimină specificația bsd_signal(), recomandând în schimb utilizarea sigaction(2)EN.
Utilizarea funcției bsd_signal() ar trebui evitată; utilizați în schimb sigaction(2)EN.
Pe sistemele Linux moderne, bsd_signal() și signal(2)EN sunt echivalente. Dar pe sistemele mai vechi, signal(2)EN oferea o semantică a semnalelor nesigură; consultați signal(2)EN pentru detalii.
Utilizarea sighandler_t este o extensie GNU; acest tip este definit numai dacă macro de testare a caracteristicii _GNU_SOURCE este definită.
Traducerea în limba română a acestui manual a fost creată 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.