SIGSUSPEND(2) |
FreeBSD System Calls Manual |
SIGSUSPEND(2) |
名称
sigsuspend —
ブロックされているシグナルを不可分に解放し、割り込みをウェート (待つ) する
ライブラリ
Standard C Library (libc, -lc)
書式
#include < signal.h>
int
sigsuspend( const sigset_t *sigmask);
解説
sigsuspend() システムコールは、
sigmask が指す設定に、ブロックされたシグナルマスクを一時的に変更し、次に、シグナルが到着するのをウェートし (待ち) ます。返り時は、マスクされたシグナルの前の設定に戻されます。シグナルマスクの設定は、すべてのシグナルが呼び出しの間にブロックされていないことを示すために通常、空です。
通常の使用法では、シグナルは、クリティカルなセッションを始めるために sigprocmask(2) を使用してブロックされ、シグナルの発生で修正された変数は、行われる作業がないことを決定するために検査されます、そして、プロセスは、 sigprocmask(2) によって返された以前のマスクを付けて sigsuspend() を使用することによって、待っている作業を一時停止します。
戻り値
sigsuspend() システムコールは、割り込まれることによって、常に終了し、
errno を
EINTR に設定して、-1 で返ります。
規格
sigsuspend() システムコールは、 IEEE Std 1003.1-1990 (“POSIX.1”) に適合するはずです。