SIGSUSPEND(2) | Linux Programmer's Manual | SIGSUSPEND(2) |
名前
sigsuspend -シグナルを待つ書式
#include <signal.h>glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
説明
sigsuspend() は、呼び出し元プロセスのシグナルマスクを mask で指定されたマスクに一時的に置き換え、シグナルハンドラの起動もしくはプロセスの終了がアクションとして設定されたシグナルが配送されるまで、そのプロセスを停止する。返り値
sigsuspend() は常に-1 を返し、通常は EINTR エラーが発生する。エラー
- EFAULT
- mask が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。
- EINTR
- システムコールはシグナルにより割り込まれた。
準拠
POSIX.1-2001.注意
sigsuspend() は、通常、クリティカル・コード・セクション (critical code section) の実行中にシグナルが配送されるのを防止するために、 sigprocmask(2) と組み合わせて使用される。まず最初に、呼び出し元は sigprocmask(2) を使ってシグナルを禁止する。クリティカル・コードが完了すると、呼び出し元は sigprocmask(2) が ( oldset 引き数で) 返すシグナルマスクを指定して sigsuspend() を呼び出すことで、クリティカル・コード実行中に発生したシグナルを待つことができる。シグナル集合の操作に関する詳細は sigsetops(3) を参照のこと。
関連項目
kill(2), pause(2), sigaction(2), signal(2), sigprocmask(2), sigwaitinfo(2), sigsetops(3), sigwait(3), signal(7)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2008-08-29 | Linux |