Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       sigsuspend, rt_sigsuspend, rt_sigsuspend - așteaptă un semnal

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <signal.h>

       int sigsuspend(const sigset_t *mask);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       sigsuspend():
           _POSIX_C_SOURCE

DESCRIERE

       sigsuspend()  înlocuiește  temporar  masca  de  semnal  a  firului  apelant cu masca dată de mask și apoi
       suspendă firul până la livrarea unui semnal a cărui acțiune este de a invoca un gestionar de  semnal  sau
       de a încheia un proces.

       Dacă semnalul termină procesul, atunci sigsuspend() nu returnează.  În cazul în care semnalul este prins,
       atunci  sigsuspend()  returnează  după  ce  gestionarul  de  semnal  returnează, iar masca de semnal este
       restabilită la starea anterioară apelului la sigsuspend().

       Nu este posibil să se blocheze SIGKILL sau SIGSTOP; specificarea acestor semnale în mask, nu  are  niciun
       efect asupra măștii de semnal a firului.

VALOAREA RETURNATĂ

       sigsuspend()  returnează  întotdeauna  -1,  cu  errno configurată pentru a indica eroarea (în mod normal,
       EINTR).

ERORI

       EFAULT mask indică o memorie care nu este o parte validă a spațiului de adrese al procesului.

       EINTR  Apelul a fost întrerupt de un semnal; signal(7).

STANDARDE

       POSIX.1-2001, POSIX.1-2008.

NOTE

       În mod normal, sigsuspend() este utilizat împreună cu sigprocmask(2) pentru a preveni  transmiterea  unui
       semnal  în  timpul  executării  unei secțiuni de cod critice.  Apelantul blochează mai întâi semnalele cu
       sigprocmask(2).  Când codul  critic  s-a  terminat,  apelantul  așteaptă  apoi  semnalele  prin  apelarea
       sigsuspend() cu masca de semnal care a fost returnată de sigprocmask(2) (în argumentul oldset).

       A se vedea sigsetops(3) pentru detalii privind manipularea seturilor de semnale.

   Diferențe între biblioteca C și nucleu
       Apelul  original  al  sistemului  Linux  a fost numit sigsuspend().  Cu toate acestea, odată cu adăugarea
       semnalelor în timp real în Linux 2.2, tipul sigset_t de 32 de biți, de dimensiune fixă,  admis  de  acest
       apel  de  sistem  nu  mai  era  adecvat  scopului.   În consecință, a fost adăugat un nou apel de sistem,
       rt_sigsuspend(), pentru a admite un tip sigset_t mărit.  Noul  apel  de  sistem  primește  un  al  doilea
       argument,  size_t  sigsetsize,  care  specifică  dimensiunea în octeți a setului de semnale din mask.  În
       prezent, acest argument trebuie să aibă valoarea sizeof(sigset_t) (în caz contrar, apare eroarea EINVAL).
       Funcția  învăluitoare  glibc  sigsuspend()  ne  ascunde  aceste  detalii,  apelând  în  mod   transparent
       rt_sigsuspend() atunci când nucleul o furnizează.

CONSULTAȚI ȘI

       kill(2),  pause(2),  sigaction(2),  signal(2),  sigprocmask(2), sigwaitinfo(2), sigsetops(3), sigwait(3),
       signal(7)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   creată   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.03                  30 octombrie 2022                                  sigsuspend(2)