table of contents
- bookworm-backports 4.24.0-2~bpo12+1
sigevent(7) | Miscellaneous Information Manual | sigevent(7) |
NUME¶
sigevent - structură pentru notificarea de la rutinele asincrone
SINOPSIS¶
#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:
- SIGEV_NONE
- O notificare „nulă”: nu face nimic atunci când are loc evenimentul.
- SIGEV_SIGNAL
- 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:
- Î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).
- SIGEV_THREAD
- 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)).
- SIGEV_THREAD_ID (specific-Linux)
- Î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.03 |