Provided by: manpages-ro-dev_4.27.0-1_all 

NUME
sigprocmask, rt_sigprocmask, rt_sigprocmask - examinează și modifică semnalele blocate
BIBLIOTECA
Biblioteca C standard (libc, -lc)
SINOPSIS
#include <signal.h> /* Prototip pentru funcția de învăluire glibc */ int sigprocmask(int how, const sigset_t *_Nullable restrict set, sigset_t *_Nullable restrict oldset); #include <signal.h> /* Definiția constantelor SIG_* */ #include <sys/syscall.h> /* Definiția constantelor SYS_* */ #include <unistd.h> /* Prototip pentru apelul de sistem subiacent */ int syscall(SYS_rt_sigprocmask, int how, const kernel_sigset_t *_Nullable set, kernel_sigset_t *_Nullable oldset, size_t sigsetsize); /* Prototip pentru apelul de sistem vechi */ [[depreciat]] int syscall(SYS_sigprocmask, int how, const old_kernel_sigset_t *_Nullable set, old_kernel_sigset_t *_Nullable oldset); Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)): sigprocmask(): _POSIX_C_SOURCE
DESCRIERE
sigprocmask() este utilizat pentru a prelua și/sau modifica masca de semnal a firului apelant. Masca de semnal este setul de semnale a căror livrare este blocată în prezent pentru apelant (a se vedea, de asemenea, signal(7) pentru mai multe detalii). Comportamentul apelului depinde de valoarea lui how, după cum urmează. SIG_BLOCK Setul de semnale blocate este uniunea dintre setul curent și argumentul set. SIG_UNBLOCK Semnalele din set sunt eliminate din setul curent de semnale blocate. Este permisă încercarea de deblocare a unui semnal care nu este blocat. SIG_SETMASK Setul de semnale blocate este stabilit la argumentul set. Dacă oldset nu este NULL, valoarea anterioară a măștii de semnal este stocată în oldset. Dacă set este NULL, atunci masca de semnal este neschimbată (adică how este ignorat), dar valoarea curentă a măștii de semnal este totuși returnată în oldset (dacă nu este NULL). Un set de funcții pentru modificarea și inspectarea variabilelor de tip sigset_t („seturi de semnale”) este descris în sigsetops(3). Utilizarea lui sigprocmask() este nespecificată într-un proces cu mai multe fire; a se vedea pthread_sigmask(3).
VALOAREA RETURNATĂ
sigprocmask() returnează 0 în caz de succes. În caz de eșec, se returnează -1, iar errno este configurată pentru a indica eroarea.
ERORI-IEȘIRE
EFAULT Argumentul set sau oldset indică în afara spațiului de adrese alocat procesului. EINVAL Fie valoarea specificată în how nu a fost validă, fie nucleul nu suportă dimensiunea transmisă în sigsetsize.
VERSIUNI
Diferențe între biblioteca C și nucleu Definiția nucleului pentru sigset_t diferă în ceea ce privește dimensiunea față de cea utilizată de biblioteca C. În această pagină de manual, prima este denumită kernel_sigset_t (este cu toate acestea denumită sigset_t în sursele nucleului). Funcția glibc pentru sigprocmask() ignoră în tăcere încercările de a bloca cele două semnale în timp real care sunt utilizate în mod intern de către implementarea NPTL threading. A se vedea nptl(7) pentru detalii. Apelul original al sistemului Linux a fost numit sigprocmask(). Cu toate acestea, odată cu adăugarea semnalelor în timp real în Linux 2.2, tipul de dimensiune fixă, pe 32 de biți sigset_t (denumit old_kernel_sigset_t în această pagină de manual), acceptat de acest apel de sistem, nu mai era adecvat scopului. În consecință, a fost adăugat un nou apel de sistem, rt_sigprocmask(), pentru a permite acceptarea unui tip sigset_t mărit (denumit kernel_sigset_t în această pagină de manual). Noul apel de sistem primește un al patrulea argument, size_t sigsetsize, care specifică dimensiunea în octeți a seturilor de semnale din set și oldset. În prezent, se cere ca acest argument să aibă o valoare fixă specifică arhitecturii (egală cu sizeof(kernel_sigset_t)). Funcția de învăluire glibc sigprocmask() ascunde aceste detalii de noi, apelând în mod transparent rt_sigprocmask() atunci când nucleul o furnizează.
STANDARDE
POSIX.1-2008.
ISTORIC
POSIX.1-2001.
NOTE
Nu este posibil să se blocheze SIGKILL sau SIGSTOP. Încercările de a face acest lucru sunt ignorate în tăcere. Fiecare dintre firele de execuție dintr-un proces are propria mască de semnal. Un copil creat prin fork(2) moștenește o copie a măștii de semnal a părintelui său; masca de semnal este păstrată în execve(2). Dacă SIGBUS, SIGFPE, SIGILL sau SIGSEGV sunt generate în timp ce sunt blocate, rezultatul este nedefinit, cu excepția cazului în care semnalul a fost generat de kill(2), sigqueue(3) sau raise(3). A se vedea sigsetops(3) pentru detalii privind manipularea seturilor de semnale. Rețineți că este permisă (deși nu este foarte utilă) specificarea atât a lui set, cât și a lui oldset ca fiind NULL.
CONSULTAȚI ȘI
kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigsuspend(2), pthread_sigmask(3), sigqueue(3), sigsetops(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. Pagini de manual de Linux 6.9.1 2 mai 2024 sigprocmask(2)