| SIGEVENT(7) | Руководство программиста Linux | SIGEVENT(7) |
sigevent - структура для уведомления из асинхронных процедур
#include <signal.h>
union sigval { /* Данные, передаваемые с уведомлением */
int sival_int; /* целое */
void *sival_ptr; /* указатель */
};
struct sigevent {
int sigev_notify; /* метод уведомления */
int sigev_signo; /* сигнал уведомления */
union sigval sigev_value; /* данные, передаваемые
с уведомлением */
void (*sigev_notify_function) (union sigval);
/* функция, используемая для нити
notification (SIGEV_THREAD) */
void *sigev_notify_attributes;
/* атрибуты для уведомления нити
(SIGEV_THREAD) */
pid_t sigev_notify_thread_id;
/* ID нити для уведомления (SIGEV_THREAD_ID) */
};
Структура sigevent используется в различных программных интерфейсах для описания способа, которым нужно уведомлять процесс о событии (например, окончание асинхронного запроса, истечение таймера или поступление сообщения).
Определение, приведённое в ОБЗОРЕ, приблизительно: некоторые поля в структуре sigevent могут быть определены как часть объединения. Программы должны использовать только те поля, которые применимы к значению, заданном в sigev_notify.
В поле sigev_notify задаётся как выполняется уведомление. Значением поля может быть:
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)
| 2017-07-13 | GNU |