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 |