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

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)