table of contents
- bookworm-backports 4.25.0-1~bpo12+1
- testing 4.25.0-1
- unstable 4.25.0-1
sigset(3) | Library Functions Manual | sigset(3) |
NUME¶
sigset, sighold, sigrelse, sigignore - API de semnal pentru System V
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <signal.h>
typedef void (*sighandler_t)(int);
[[depreciat]] sighandler_t sigset(int sig, sighandler_t disp);
[[depreciat]] int sighold(int sig); [[depreciat]] int sigrelse(int sig); [[depreciat]] int sigignore(int sig);
sigset(), sighold(), sigrelse(), sigignore():
_XOPEN_SOURCE >= 500
DESCRIERE¶
Aceste funcții sunt furnizate în glibc ca o interfață de compatibilitate pentru programele care utilizează API-ul istoric de semnale System V. Acest API este depășit: noile aplicații ar trebui să utilizeze API-ul de semnal POSIX (sigaction(2), sigprocmask(2), etc.)
Funcția sigset() modifică dispoziția semnalului sig. Argumentul disp poate fi adresa unei funcții de tratare a semnalului sau una dintre următoarele constante:
- SIG_DFL
- Readuce dispoziția sig la valoarea implicită.
- SIG_IGN
- Ignoră sig.
- SIG_HOLD
- Adaugă sig la masca de semnal a procesului, dar lasă dispoziția lui sig neschimbată.
Dacă disp specifică adresa unui manipulator de semnal, atunci sig este adăugat la masca de semnal a procesului în timpul executării gestionarului.
Dacă disp a fost specificat ca o valoare diferită de SIG_HOLD, atunci sig este eliminat din masca de semnal a procesului.
Dispozițiile pentru SIGKILL și SIGSTOP nu pot fi modificate.
Funcția sighold() adaugă sig la masca de semnal a procesului apelant.
Funcția sigrelse() elimină sig din masca de semnal a procesului apelant.
Funcția sigignore() stabilește dispoziția sig la SIG_IGN.
VALOAREA RETURNATö
În caz de succes, sigset() returnează SIG_HOLD dacă sig a fost blocat înainte de apel, sau dispoziția anterioară a semnalului dacă acesta nu a fost blocat înainte de apel. În caz de eroare, sigset() returnează -1, cu errno configurată pentru a indica eroarea. A se vedea însă ERORI, mai jos.
Funcțiile sighold(), sigrelse() și sigignore() returnează 0 în caz de succes; în caz de eroare, aceste funcții returnează -1 și configurează errno pentru a indica eroarea.
ERORI-IEȘIRE¶
Pentru sigset(), a se vedea ERORILE de la sigaction(2) și sigprocmask(2).
Pentru sighold() și sigrelse(), a se vedea ERORI la sigprocmask(2).
Pentru sigignore(), a se vedea erorile de la sigaction(2).
ATRIBUTE¶
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
sigset(), sighold(), sigrelse(), sigignore() | Siguranța firelor | MT-Safe |
STANDARDE¶
POSIX.1-2008.
- sighandler_t
- GNU. POSIX.1 utilizează același tip, dar fără un typedef.
ISTORIC¶
glibc 2.1. SVr4, POSIX.1-2001. POSIX.1-2008 marchează aceste funcții ca fiind depășite, recomandând în schimb utilizarea sigaction(2), sigprocmask(2), pthread_sigmask(3) și sigsuspend(2).
NOTE¶
Funcția sigset() oferă o semantică fiabilă de gestionare a semnalelor (ca atunci când se apelează sigaction(2) cu sa_mask egal cu 0).
Pe System V, funcția signal() oferă o semantică nesigură (ca atunci când se apelează sigaction(2) cu sa_mask egal cu SA_RESETHAND | SA_NODEFER). Pe BSD, signal() oferă o semantică fiabilă. POSIX.1-2001 lasă aceste aspecte ale signal() nespecificate. Consultați signal(2) pentru detalii suplimentare.
Pentru a aștepta un semnal, BSD și System V au furnizat o funcție numită sigpause(3), dar această funcție are un argument diferit pe cele două sisteme. Consultați sigpause(3) pentru detalii.
ERORI¶
Înainte de glibc 2.2, sigset() nu debloca sig dacă disp era specificat ca o valoare diferită de SIG_HOLD.
Înainte de glibc 2.5, sigset() nu returnează corect dispoziția anterioară a semnalului în două cazuri. În primul rând, dacă disp este specificat ca SIG_HOLD, atunci un sigset() reușit returnează întotdeauna SIG_HOLD. În schimb, ar trebui să returneze dispoziția anterioară a semnalului (cu excepția cazului în care semnalul a fost blocat, caz în care ar trebui returnat SIG_HOLD). În al doilea rând, dacă semnalul este în prezent blocat, atunci valoarea returnată de un sigset() reușit ar trebui să fie SIG_HOLD. În schimb, este returnată dispoziția anterioară a semnalului. Aceste probleme au fost rezolvate începând cu glibc 2.5.
CONSULTAȚI ȘI¶
kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), raise(3), sigpause(3), sigvec(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 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.9.1 |