Scroll to navigation

sigevent(7) Miscellaneous Information Manual sigevent(7)

NUME

sigevent - structură pentru notificarea de la rutinele asincrone

REZUMAT

#include <signal.h>
union sigval {            /* Date transmise cu notificarea */

int sival_int; /* Valoare de număr întreg */
void *sival_ptr; /* Valoarea indicatorului */ };
struct sigevent {

int sigev_notify; /* Metoda de notificare */
int sigev_signo; /* Semnalul de notificare */
union sigval sigev_value;
/* Date transmise cu notificarea */
void (*sigev_notify_function)(union sigval);
/* Funcția utilizată pentru firul
notificării (SIGEV_THREAD) */
void *sigev_notify_attributes;
/* Atribute pentru firul de notificare
(SIGEV_THREAD) */
pid_t sigev_notify_thread_id;
/* ID-ul firului pentru semnal
(SIGEV_THREAD_ID); specific Linux */ };

DESCRIERE

Structura sigevent este utilizată de diverse API-uri pentru a descrie modul în care un proces trebuie să fie notificat cu privire la un eveniment (de exemplu, finalizarea unei cereri asincrone, expirarea unui cronometru sau sosirea unui mesaj).

Definiția prezentată în REZUMAT este aproximativă: unele dintre câmpurile din structura sigevent pot fi definite ca parte a unei uniuni. Programele ar trebui să utilizeze numai acele câmpuri relevante pentru valoarea specificată în sigev_notify.

Câmpul sigev_notify specifică modul în care trebuie efectuată notificarea. Acest câmp poate avea una dintre următoarele valori:

O notificare „nulă”: nu face nimic atunci când are loc evenimentul.
Notifică procesul prin trimiterea semnalului specificat în sigev_signo.
În cazul în care semnalul este prins cu un gestionar de semnal care a fost înregistrat cu ajutorul fanionului sigaction(2) SA_SIGINFO, atunci următoarele câmpuri sunt definite în structura siginfo_t care este transmisă ca al doilea argument al gestionarului:
Acest câmp este definit la o valoare care depinde de API care furnizează notificarea.
Acest câmp este stabilit la numărul semnalului (adică aceeași valoare ca în sigev_signo).
Acest câmp este stabilit la valoarea specificată în sigev_value.
În funcție de API, în structura siginfo_t pot fi definite și alte câmpuri.
Aceleași informații sunt disponibile și în cazul în care semnalul este acceptat folosind sigwaitinfo(2).
Notifică procesul prin invocarea sigev_notify_function „ca și cum” ar fi funcția de pornire a unui nou fir; (printre posibilitățile de implementare aici se numără faptul că fiecare notificare a cronometrului ar putea duce la crearea unui nou fir sau că se creează un singur fir pentru a primi toate notificările). Funcția este invocată cu sigev_valoare ca unic argument. n cazul în care sigev_notify_attributes nu este NULL, acesta ar trebui să indice o structură pthread_attr_attr_t care definește atributele pentru noul fir (a se vedea pthread_attr_init(3)).
În prezent este utilizat numai de cronometrele POSIX; a se vedea timer_create(2).

CONSULTAȚI ȘI

timer_create(2), aio_fsync(3), aio_read(3), aio_write(3), getaddrinfo_a(3), lio_listio(3), mq_notify(3), aio(7), pthreads(7)

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

30 octombrie 2022 Pagini de manual de Linux 6.05.01