Provided by: manpages-ja_0.5.0.0.20180315+dfsg-1_all bug

名前

       sigevent - 非同期ルーチンからの通知用の構造体

書式

       union sigval {          /* Data passed with notification */
           int     sival_int;         /* Integer value */
           void   *sival_ptr;         /* Pointer value */
       };

       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) */
       };

説明

       sigevent  構造体は、イベントに関する情報をプロセスに通知するために様々な  API で使用される
       (イベントの例としては、 非同期処理要求の完了、 タイマーの満了、 メッセージの到着など)。

       「書式」に記載されている定義はおおよそのものである。 sigevent 構造体のいくつかのフィールド
       は、 共用体の一部として定義されているものもある。 プログラムは、 sigev_notify で指定された
       値に応じたフィールドだけを利用すべきである。

       sigev_notify フィールドは、通知をどのように処理すべきかを指定する。 このフィールドは、以下
       のいずれかの値である。

       SIGEV_NONE
               「空 (null)」の通知。 イベントが発生時には何もしないこと。

       SIGEV_SIGNAL
               sigev_signo で指定されたシグナルを送信することで、プロセスへの通知を行う。

               sigaction(2)  の SA_SIGINFO フラグを使った登録されたシグナルハンドラーによりシグナ
               ルが捕捉されると、 シグナルハンドラーの 2 番目の引き数として渡された siginfo_t  構
               造体の以下のフィールドが設定される。

               si_code   このフィールドには通知を配送した API に応じた決まる値が設定される。

               si_signo  このフィールドにはシグナル番号  (すなわち sigev_signo と同じ値) が設定さ
                         れる。

               si_value  このフィールドには sigev_value で指定された値が設定される。

               API によっては siginfo_t 構造体の他のフィールドが設定される場合もある。

               シグナルを受け取ったときには sigwaitinfo(2) でも同じ情報が得られる。

       SIGEV_THREAD
               「あたかも」新しいスレッドセーフの開始関数であるかのように   sigev_notify_function
               を起動することで、 プロセスへの通知を行う (実装の可能性としては、 タイマー通知の度
               に新しいスレッドセーフが作成される場合も、  一つのスレッドを作成してすべての通知を
               受信する場合もある)。   この関数は   sigev_value  を唯一の引き数として起動される。
               sigev_notify_attributes は、 NULL 以外の場合は、  新しいスレッドセーフの属性を定義
               する pthread_attr_t 構造体を指していなければならない (pthread_attr_init(3) 参照)。

       SIGEV_THREAD_ID (Linux 固有)
               現在のところ POSIX でのみ使用されている。 timer_create(2) 参照。

準拠

       POSIX.1-2001.

関連項目

       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)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部である。  プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。