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  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.