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);
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 |
4.2BSD, POSIX.1-2001. POSIX.1-2008 elimină specificația bsd_signal(), recomandând în schimb utilizarea sigaction(2).
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ă.
sigaction(2), signal(2), sysv_signal(3), signal(7)
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.
5 februarie 2023 | Pagini de manual de Linux 6.03 |