Provided by: manpages-ro-dev_4.28.0-2_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)