スポンサーリンク

SIGSUSPEND(2) FreeBSD システムコールマニュアル SIGSUSPEND(2)

名称

sigsuspend − ブロックされているシグナルの解放と割込み待ちを不可分に実行

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <signal.h>

int

sigsuspend(const sigset_t *sigmask);

解説

sigsuspend() システムコールは、 sigmask が指す集合に、ブロックされている シグナルマスクを一時的に変更してから、シグナルの到着を待ちます。復帰時 に、マスクされたシグナルの前の集合が復元されます。通常の場合、シグナルマ スク集合は空で、呼び出しが続く間、すべてのシグナルがブロックされないこと を表わします。

通常の用法では、 sigprocmask(2) でシグナルをブロックして重要なセクション を始め、シグナルの発生で修正された変数を調べて実行すべき仕事がないことを 判断し、 sigprocmask(2) が返した以前のマスクで sigsuspend() を使用するこ とでプロセスが停止して仕事を待ちます。

戻り値

sigsuspend() システムコールは、常に割り込まれることで終了し、 errno を EINTR に設定し、-1 を返します。

関連項目

sigaction(2), sigpending(2), sigprocmask(2), sigsetops(3)

規格

sigsuspend() システムコールは、 ISO/IEC 9945-1:1990 (‘‘POSIX.1’’) に適合 しています。

FreeBSD 10.0 May 16, 1995 FreeBSD 10.0

スポンサーリンク