rt_sigqueueinfo(2) System Calls Manual rt_sigqueueinfo(2) NUME rt_sigqueueinfo, rt_tgsigqueueinfo - pune in coada de ateptare un semnal i date BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include /* Definirea constantelor SI_* */ #include /* Definirea constantelo SYS_* */ #include int syscall(SYS_rt_sigqueueinfo, pid_t tgid, int sig, siginfo_t *info); int syscall(SYS_rt_tgsigqueueinfo, pid_t tgid, pid_t tid, int sig, siginfo_t *info); Nota: Nu exista funcii de invaluire glibc pentru aceste apeluri de sistem; consultai NOTE. DESCRIERE Apelurile de sistem rt_sigqueueinfo() i rt_tgsigqueueinfo() sunt interfeele de nivel scazut utilizate pentru a trimite un semnal plus date catre un proces sau un fir de execuie. Receptorul semnalului poate obine datele insoitoare prin stabilirea unui gestionar de semnal cu indicatorul sigaction(2) SA_SIGINFO. Aceste apeluri de sistem nu sunt destinate utilizarii directe de catre aplicaii; ele sunt furnizate pentru a permite implementarea sigqueue(3) i pthread_sigqueue(3). Apelul de sistem rt_sigqueueinfo() trimite semnalul sig catre grupul de fire cu ID-ul tgid; (termenul ,,grup de fire" este sinonim cu ,,proces", iar tgid corespunde ID-ului tradiional de proces UNIX). Semnalul va fi transmis unui membru arbitrar al grupului de fire de execuie (adica unuia dintre firele de execuie care nu blocheaza in prezent semnalul). Argumentul info specifica datele care trebuie sa insoeasca semnalul. Acest argument este un indicator catre o structura de tip siginfo_t, descrisa in sigaction(2) (i definita prin includerea ). Apelantul trebuie sa defineasca urmatoarele campuri in aceasta structura: si_code Acesta ar trebui sa fie unul dintre codurile SI_* din fiierul sursa al nucleului Linux include/asm-generic/siginfo.h. Daca semnalul este trimis catre orice alt proces decat apelantul insui, se aplica urmatoarele restricii: o Codul nu poate fi o valoare mai mare sau egala cu zero. In special, nu poate fi SI_USER, care este utilizat de nucleu pentru a indica un semnal trimis de kill(2), i nici nu poate fi SI_KERNEL, care este utilizat pentru a indica un semnal generat de nucleu. o Codul nu poate fi (incepand cu Linux 2.6.39) SI_TKILL, care este utilizat de nucleu pentru a indica un semnal trimis utilizand tgkill(2). si_pid Acesta trebuie sa fie definit la un ID de proces, de obicei ID-ul de proces al expeditorului. si_uid Acesta trebuie definit la un ID de utilizator, de obicei ID-ul de utilizator real al emitentului. si_value Acest camp conine datele utilizatorului care trebuie sa insoeasca semnalul. Pentru mai multe informaii, consultai descrierea ultimului argument (union sigval) din sigqueue(3). Pe plan intern, nucleul stabilete campul si_signo la valoarea specificata in sig, astfel incat receptorul semnalului sa poata obine i numarul semnalului prin intermediul acestui camp. Apelul de sistem rt_tgsigqueueinfo() este similar cu rt_sigqueueinfo(), dar trimite semnalul i datele catre un singur fir specificat de combinaia tgid, un ID de grup de fire i tid, un fir din acel grup de fire. VALOAREA RETURNATA In caz de succes, aceste apeluri de sistem returneaza 0. In caz de eroare, acestea returneaza -1 i errno este configurata pentru a indica eroarea. ERORI-IEIRE EAGAIN A fost atinsa limita de semnale care pot fi puse in coada. A se vedea signal(7) pentru informaii suplimentare. EINVAL sig, tgid sau tid nu a fost valid. EPERM Apelantul nu are permisiunea de a trimite semnalul catre inta. Pentru permisiunile necesare, consultai kill(2). EPERM tgid specifica un alt proces decat apelantul i info->si_code nu este valid. ESRCH rt_sigqueueinfo(): Nu a fost gasit niciun grup de fire care sa corespunda tgid. rt_tgsigqueinfo(): Nu a fost gasit niciun fir care sa corespunda tgid i tid. STANDARDE Linux. ISTORIC rt_sigqueueinfo() Linux 2.2. rt_tgsigqueueinfo() Linux 2.6.31. NOTE Deoarece aceste apeluri de sistem nu sunt destinate utilizarii in aplicaii, nu exista funcii de invaluire glibc; utilizai syscall(2) in cazul puin probabil in care dorii sa le apelai direct. Ca i in cazul kill(2), semnalul nul (0) poate fi utilizat pentru a verifica daca procesul sau firul specificat exista. CONSULTAI I kill(2), pidfd_send_signal(2), sigaction(2), sigprocmask(2), tgkill(2), pthread_sigqueue(3), sigqueue(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.12 2 februarie 2025 rt_sigqueueinfo(2)