Rechercher une page de manuel
sigpause
Langue: ja
Version: 2005-12-01 (mandriva - 01/05/08)
Section: 3 (Bibliothèques de fonctions)
名前
sigpause - ブロックされたシグナルをアトミックに解放して割り込みを待つ書式
#include <signal.h> int sigpause(int sigmask); /* BSD */ int sigpause(int sig); /* System V / Unix95 */
説明
この関数を使わないこと。 代わりに sigsuspend(2) を使うこと。関数 sigpause() はシグナルを待つように設計されている。 この関数はプロセスのシグナルマスク (ブロックされたシグナルのセット) を変更し、 シグナルが到着するのを待つ。 シグナルが到着すると、シグナルマスクは元に戻される。
返り値
sigpause() が返った場合、この関数はシグナルによって割り込まれている。 返り値は -1 で、 errno は EINTR に設定される。備考
歴史
この関数の古典的な 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)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre