sigset(3) Library Functions Manual sigset(3) NUME sigset, sighold, sigrelse, sigignore - API de semnal pentru System V BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include typedef void (*sighandler_t)(int); [[depreciat]] sighandler_t sigset(int sig, sighandler_t disp); [[depreciat]] int sighold(int sig); [[depreciat]] int sigrelse(int sig); [[depreciat]] int sigignore(int sig); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): sigset(), sighold(), sigrelse(), sigignore(): _XOPEN_SOURCE >= 500 DESCRIERE Aceste funcii sunt furnizate in glibc ca o interfaa de compatibilitate pentru programele care utilizeaza API-ul istoric de semnale System V. Acest API este depait: noile aplicaii ar trebui sa utilizeze API-ul de semnal POSIX (sigaction(2), sigprocmask(2), etc.) Funcia sigset() modifica dispoziia semnalului sig. Argumentul disp poate fi adresa unei funcii de tratare a semnalului sau una dintre urmatoarele constante: SIG_DFL Readuce dispoziia sig la valoarea implicita. SIG_IGN Ignora sig. SIG_HOLD Adauga sig la masca de semnal a procesului, dar lasa dispoziia lui sig neschimbata. Daca disp specifica adresa unui manipulator de semnal, atunci sig este adaugat la masca de semnal a procesului in timpul executarii gestionarului. Daca disp a fost specificat ca o valoare diferita de SIG_HOLD, atunci sig este eliminat din masca de semnal a procesului. Dispoziiile pentru SIGKILL i SIGSTOP nu pot fi modificate. Funcia sighold() adauga sig la masca de semnal a procesului apelant. Funcia sigrelse() elimina sig din masca de semnal a procesului apelant. Funcia sigignore() stabilete dispoziia sig la SIG_IGN. VALOAREA RETURNATA In caz de succes, sigset() returneaza SIG_HOLD daca sig a fost blocat inainte de apel, sau dispoziia anterioara a semnalului daca acesta nu a fost blocat inainte de apel. In caz de eroare, sigset() returneaza -1, cu errno configurata pentru a indica eroarea. A se vedea insa ERORI, mai jos. Funciile sighold(), sigrelse() i sigignore() returneaza 0 in caz de succes; in caz de eroare, aceste funcii returneaza -1 i configureaza errno pentru a indica eroarea. ERORI-IEIRE Pentru sigset(), a se vedea ERORILE de la sigaction(2) i sigprocmask(2). Pentru sighold() i sigrelse(), a se vedea ERORI la sigprocmask(2). Pentru sigignore(), a se vedea erorile de la sigaction(2). ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |sigset(), sighold(), sigrelse(), | Sigurana firelor | MT-Safe | |sigignore() | | | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. sighandler_t GNU. POSIX.1 utilizeaza acelai tip, dar fara un typedef. ISTORIC glibc 2.1. SVr4, POSIX.1-2001. POSIX.1-2008 marcheaza aceste funcii ca fiind depaite, recomandand in schimb utilizarea sigaction(2), sigprocmask(2), pthread_sigmask(3) i sigsuspend(2). NOTE Funcia sigset() ofera o semantica fiabila de gestionare a semnalelor (ca atunci cand se apeleaza sigaction(2) cu sa_mask egal cu 0). Pe System V, funcia signal() ofera o semantica nesigura (ca atunci cand se apeleaza sigaction(2) cu sa_mask egal cu SA_RESETHAND | SA_NODEFER). Pe BSD, signal() ofera o semantica fiabila. POSIX.1-2001 lasa aceste aspecte ale signal() nespecificate. Consultai signal(2) pentru detalii suplimentare. Pentru a atepta un semnal, BSD i System V au furnizat o funcie numita sigpause(3), dar aceasta funcie are un argument diferit pe cele doua sisteme. Consultai sigpause(3) pentru detalii. ERORI Inainte de glibc 2.2, sigset() nu debloca sig daca disp era specificat ca o valoare diferita de SIG_HOLD. Inainte de glibc 2.5, sigset() nu returneaza corect dispoziia anterioara a semnalului in doua cazuri. In primul rand, daca disp este specificat ca SIG_HOLD, atunci un sigset() reuit returneaza intotdeauna SIG_HOLD. In schimb, ar trebui sa returneze dispoziia anterioara a semnalului (cu excepia cazului in care semnalul a fost blocat, caz in care ar trebui returnat SIG_HOLD). In al doilea rand, daca semnalul este in prezent blocat, atunci valoarea returnata de un sigset() reuit ar trebui sa fie SIG_HOLD. In schimb, este returnata dispoziia anterioara a semnalului. Aceste probleme au fost rezolvate incepand cu glibc 2.5. CONSULTAI I kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), raise(3), sigpause(3), sigvec(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.9.1 2 mai 2024 sigset(3)