sigsuspend(2) System Calls Manual sigsuspend(2) NUME sigsuspend, rt_sigsuspend, rt_sigsuspend - ateapta un semnal BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include int sigsuspend(const sigset_t *mask); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): sigsuspend(): _POSIX_C_SOURCE DESCRIERE sigsuspend() inlocuiete temporar masca de semnal a firului apelant cu masca data de mask i apoi suspenda firul pana la livrarea unui semnal a carui aciune este de a invoca un gestionar de semnal sau de a incheia un proces. Daca semnalul termina procesul, atunci sigsuspend() nu returneaza. In cazul in care semnalul este prins, atunci sigsuspend() returneaza dupa ce gestionarul de semnal returneaza, iar masca de semnal este restabilita la starea anterioara apelului la sigsuspend(). Nu este posibil sa se blocheze SIGKILL sau SIGSTOP; specificarea acestor semnale in mask, nu are niciun efect asupra matii de semnal a firului. VALOAREA RETURNATA sigsuspend() returneaza intotdeauna -1, cu errno configurata pentru a indica eroarea (in mod normal, EINTR). ERORI-IEIRE EFAULT mask indica o memorie care nu este o parte valida a spaiului de adrese al procesului. EINTR Apelul a fost intrerupt de un semnal; signal(7). STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001. Diferene intre biblioteca C i nucleu Apelul original al sistemului Linux a fost numit sigsuspend(). Cu toate acestea, odata cu adaugarea semnalelor in timp real in Linux 2.2, tipul sigset_t de 32 de bii, de dimensiune fixa, admis de acest apel de sistem nu mai era adecvat scopului. In consecina, a fost adaugat un nou apel de sistem, rt_sigsuspend(), pentru a admite un tip sigset_t marit. Noul apel de sistem primete un al doilea argument, size_t sigsetsize, care specifica dimensiunea in octei a setului de semnale din mask. In prezent, acest argument trebuie sa aiba valoarea sizeof(sigset_t) (in caz contrar, apare eroarea EINVAL). Funcia invaluitoare glibc sigsuspend() ne ascunde aceste detalii, apeland in mod transparent rt_sigsuspend() atunci cand nucleul o furnizeaza. NOTE In mod normal, sigsuspend() este utilizat impreuna cu sigprocmask(2) pentru a preveni transmiterea unui semnal in timpul executarii unei seciuni de cod critice. Apelantul blocheaza mai intai semnalele cu sigprocmask(2). Cand codul critic s-a terminat, apelantul ateapta apoi semnalele prin apelarea sigsuspend() cu masca de semnal care a fost returnata de sigprocmask(2) (in argumentul oldset). A se vedea sigsetops(3) pentru detalii privind manipularea seturilor de semnale. CONSULTAI I kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), sigwaitinfo(2), sigsetops(3), sigwait(3), signal(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 sigsuspend(2)