SIGPAUSE
Section: Linux Programmer's Manual (3)
Updated: 2005-12-01
Index
JM Home Page
roff page
名前
sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ
書式
#include <signal.h>
int sigpause(int sigmask); /* BSD */
int sigpause(int sig); /* System V / Unix95 */
説明
この関数を使わないこと。
代わりに
sigsuspend(2)
を使うこと。
関数
sigpause()
はシグナルを待つように設計されている。
この関数はプロセスのシグナルマスク (ブロックされたシグナルのセット) を変更し、
シグナルが到着するのを待つ。
シグナルが到着すると、シグナルマスクは元に戻される。
返り値
sigpause()
が返った場合、この関数はシグナルによって割り込まれている。
返り値は -1 で、
errno
は
EINTR
に設定される。
準拠
System V 版の
sigpause()
は POSIX.1-2001 で標準化されている。
備考
歴史
この関数の古典的な BSD 版は 4.2BSD で登場した。
この関数はプロセスのシグナルマスクを
sigmask
に設定する。
Unix95 では BSD 版と互換性のない System V 版のこの関数が標準化された。
Unix95 版は、指定されたシグナル
sig
をプロセスのシグナルマスクから削除するだけである。
同じ名前で互換性のない 2 つの関数があるという不幸な事態は、
sigsuspend(2)
関数によって解消された。
この関数は
(int
の代わりに)
sigset_t *
引き数をとる。
Linux での注意
Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみ
システムコールとなっている。
libc4 と libc5 には BSD 版しかない。
機能検査マクロ
_BSD_SOURCE
が定義され、
_POSIX_SOURCE,
_POSIX_C_SOURCE,
_XOPEN_SOURCE,
_GNU_SOURCE,
_SVID_SOURCE
のいずれも定義されていない場合、
glibc は BSD 版を使う。
_XOPEN_SOURCE
が定義された場合、System V 版を使用する。
関連項目
kill(2),
sigaction(2),
sigprocmask(2),
sigsuspend(2),
sigblock(3),
sigvec(3),
feature_test_macros(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- 準拠
-
- 備考
-
- 歴史
-
- Linux での注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:32:03 GMT, November 19, 2007