sigprocmask(2) System Calls Manual sigprocmask(2) NUME sigprocmask, rt_sigprocmask, rt_sigprocmask - examineaza i modifica semnalele blocate BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include /* Prototip pentru funcia de invaluire glibc */ int sigprocmask(int how, const sigset_t *_Nullable restrict set, sigset_t *_Nullable restrict oldset); #include /* Definiia constantelor SIG_* */ #include /* Definiia constantelor SYS_* */ #include /* 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); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai 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 caror livrare este blocata in prezent pentru apelant (a se vedea, de asemenea, signal(7) pentru mai multe detalii). Comportamentul apelului depinde de valoarea lui how, dupa cum urmeaza. 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 permisa incercarea de deblocare a unui semnal care nu este blocat. SIG_SETMASK Setul de semnale blocate este stabilit la argumentul set. Daca oldset nu este NULL, valoarea anterioara a matii de semnal este stocata in oldset. Daca set este NULL, atunci masca de semnal este neschimbata (adica how este ignorat), dar valoarea curenta a matii de semnal este totui returnata in oldset (daca nu este NULL). Un set de funcii pentru modificarea i inspectarea variabilelor de tip sigset_t (,,seturi de semnale") este descris in sigsetops(3). Utilizarea lui sigprocmask() este nespecificata intr-un proces cu mai multe fire; a se vedea pthread_sigmask(3). VALOAREA RETURNATA sigprocmask() returneaza 0 in caz de succes. In caz de eec, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EFAULT Argumentul set sau oldset indica in afara spaiului de adrese alocat procesului. EINVAL Fie valoarea specificata in how nu a fost valida, fie nucleul nu suporta dimensiunea transmisa in sigsetsize. VERSIUNI Diferene intre biblioteca C i nucleu Definiia nucleului pentru sigset_t difera in ceea ce privete dimensiunea faa de cea utilizata de biblioteca C. In aceasta pagina de manual, prima este denumita kernel_sigset_t (este cu toate acestea denumita sigset_t in sursele nucleului). Funcia glibc pentru sigprocmask() ignora in tacere incercarile de a bloca cele doua semnale in timp real care sunt utilizate in mod intern de catre implementarea NPTL threading. A se vedea nptl(7) pentru detalii. Apelul original al sistemului Linux a fost numit sigprocmask(). Cu toate acestea, odata cu adaugarea semnalelor in timp real in Linux 2.2, tipul de dimensiune fixa, pe 32 de bii sigset_t (denumit old_kernel_sigset_t in aceasta pagina de manual), acceptat de acest apel de sistem, nu mai era adecvat scopului. In consecina, a fost adaugat un nou apel de sistem, rt_sigprocmask(), pentru a permite acceptarea unui tip sigset_t marit (denumit kernel_sigset_t in aceasta pagina de manual). Noul apel de sistem primete un al patrulea argument, size_t sigsetsize, care specifica dimensiunea in octei a seturilor de semnale din set i oldset. In prezent, se cere ca acest argument sa aiba o valoare fixa specifica arhitecturii (egala cu sizeof(kernel_sigset_t)). Funcia de invaluire glibc sigprocmask() ascunde aceste detalii de noi, apeland in mod transparent rt_sigprocmask() atunci cand nucleul o furnizeaza. STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001. NOTE Nu este posibil sa se blocheze SIGKILL sau SIGSTOP. Incercarile de a face acest lucru sunt ignorate in tacere. Fiecare dintre firele de execuie dintr-un proces are propria masca de semnal. Un copil creat prin fork(2) motenete o copie a matii de semnal a parintelui sau; masca de semnal este pastrata in execve(2). Daca SIGBUS, SIGFPE, SIGILL sau SIGSEGV sunt generate in timp ce sunt blocate, rezultatul este nedefinit, cu excepia cazului in 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. Reinei ca este permisa (dei nu este foarte utila) specificarea atat a lui set, cat i a lui oldset ca fiind NULL. CONSULTAI I kill(2), pause(2), sigaction(2), signal(2), sigpending(2), sigsuspend(2), pthread_sigmask(3), sigqueue(3), sigsetops(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 sigprocmask(2)