.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2006, 2010 Michael Kerrisk .\" Copyright (C) 2009 Petr Baudis .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sigevent 7 "30 октября 2022 г." "Linux man\-pages 6.05.01" .SH ИМЯ sigevent \- структура для уведомления из асинхронных процедур .SH СИНТАКСИС .nf #include .PP union sigval { /* Data passed with notification */ int sival_int; /* Integer value */ void *sival_ptr; /* Pointer value */ }; .PP struct sigevent { int sigev_notify; /* Notification method */ int sigev_signo; /* Notification signal */ union sigval sigev_value; /* Data passed with notification */ void (*sigev_notify_function)(union sigval); /* Function used for thread notification (SIGEV_THREAD) */ void *sigev_notify_attributes; /* Attributes for notification thread (SIGEV_THREAD) */ pid_t sigev_notify_thread_id; /* ID of thread to signal (SIGEV_THREAD_ID); Linux\-specific */ }; .fi .SH ОПИСАНИЕ Структура \fIsigevent\fP используется в различных программных интерфейсах для описания способа, которым нужно уведомлять процесс о событии (например, окончание асинхронного запроса, истечение таймера или поступление сообщения). .PP Определение, приведённое в ОБЗОРЕ, приблизительно: некоторые поля в структуре \fIsigevent\fP могут быть определены как часть объединения. Программы должны использовать только те поля, которые применимы к значению, заданном в \fIsigev_notify\fP. .PP В поле \fIsigev_notify\fP задаётся как выполняется уведомление. Значением поля может быть: .TP \fBSIGEV_NONE\fP «Пустое» уведомление: ничего не делать при возникновении события. .TP \fBSIGEV_SIGNAL\fP Уведомить процесс, отправив сигнал, указанный в \fIsigev_signo\fP. .IP Если сигнал пойман обработчиком сигнала, который зарегистрирован с помощью \fBsigaction\fP(2) с флагом \fBSA_SIGINFO\fP, то следующим полям назначаются значения в структуре \fIsiginfo_t\fP, передаваемой во втором аргументе обработчика: .RS .TP 10 \fIsi_code\fP В этом поле задаётся значение, которое зависит от программного интерфейса, доставляющего уведомление. .TP \fIsi_signo\fP В этом поле указывается номер сигнала (т. е., тоже значение, что и в \fIsigev_signo\fP). .TP \fIsi_value\fP В этом поле содержится значение, указанное в \fIsigev_value\fP. .RE .IP В зависимости от программного интерфейса остальным полям в структуре \fIsiginfo_t\fP также могут быть присвоены значения. .IP Эта информация также доступна, если сигнал принимается с помощью \fBsigwaitinfo\fP(2). .TP \fBSIGEV_THREAD\fP Уведомить процесс с помощью вызова \fIsigev_notify_function\fP «как если бы» это была бы начальная функция новой нити (среди возможностей реализации здесь может быть: каждое уведомление таймера приводит к созданию новой нити, или создаётся нить для получения всех уведомлений). Функция вызывается с единственным аргументом \fIsigev_value\fP. Если \fIsigev_notify_attributes\fP не равно NULL, то значение должно указывать на структуру \fIpthread_attr_t\fP, в которой определены атрибуты новой нити (смотрите \fBpthread_attr_init\fP(3)). .TP \fBSIGEV_THREAD_ID\fP (есть только в Linux) .\" | SIGEV_SIGNAL vs not? В настоящее время используется только таймерами POSIX; смотрите \fBtimer_create\fP(2). .SH "СМ. ТАКЖЕ" \fBtimer_create\fP(2), \fBaio_fsync\fP(3), \fBaio_read\fP(3), \fBaio_write\fP(3), \fBgetaddrinfo_a\fP(3), \fBlio_listio\fP(3), \fBmq_notify\fP(3), \fBaio\fP(7), \fBpthreads\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .