Semnul omului (3) inserează semnalul și datele în coada de proces

int sigqueue (pid_tpid, intsig, const union sigvalvalue);

Cerințele macrocomenzi de test proprietate pentru glibc (a se vedea feature_test_macros (7)):

Apelul sigqueue () trimite semnalul specificat în sig. proces cu PID identificat în pid. Necesită anumite drepturi pentru a trimite semnalul, la fel ca și pentru kill (2). Ca și în cazul uciderii (2), un semnal gol (0) poate fi folosit pentru a verifica dacă un PID dat există deloc.

Argumentul valorii este utilizat pentru a specifica un element de date asociat (fie întreg sau pointer) trimis la semnal, și are următorul tip:

Dacă procesul care primește semnalul are un set de handler setat prin sigaction (2) cu pavilionul SA_SIGINFO. atunci poate obține date prin câmpul si_value al structurii siginfo_t. a trecut ca argumentul celui de-al doilea la manipulant. În plus, valoarea câmpului si_code din această structură va fi setată la SI_QUEUE.

RETURN VALUE

Dacă sigqueue () este executat cu succes, 0 este returnat, ceea ce înseamnă că semnalul este în coada procesului de primire. La eroare, -1 este returnat, iar errno conține codul de eroare.

EAGAIN Există o limită a numărului de semnale în coadă (pentru detalii, vezi semnalul (7)). EINVAL Valoarea sig nu este validă. EPERM Procesul nu are dreptul de a trimite un semnal procesului de primire. Drepturile necesare sunt în ucidere (2). ESRCH Nu există nici un proces cu PID care să corespundă cu pid-ul specificat.

Funcția sigqueue () și apelul de sistem rt_sigqueueinfo () utilizate de el pentru prima dată au apărut în Linux 2.2.

Pentru o descriere a termenilor din această secțiune, consultați atributele (7).

Articole similare