bsd_signal(3) | Library Functions Manual | 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);
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
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 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 |