SIGPAUSE(3) | Linux Programmer's Manual | SIGPAUSE(3) |
名前
sigpause -ブロックされたシグナルをアトミックに解放して割り込みを待つ書式
#include <signal.h>
int sigpause(int sigmask ); /* BSD */
int sigpause(int sig ); /* System V / UNIX 95 */
説明
この関数を使わないこと。代わりに sigsuspend(2) を使うこと。関数 sigpause() はシグナルを待つように設計されている。この関数はプロセスのシグナルマスク (ブロックされたシグナルのセット) を変更し、シグナルが到着するのを待つ。シグナルが到着すると、シグナルマスクは元に戻される。
返り値
sigpause() が返った場合、この関数はシグナルによって割り込まれている。返り値は-1 で、 errno は EINTR に設定される。準拠
System V 版の sigpause() は POSIX.1-2001 で標準化されている。注意
歴史
この関数の古典的な BSD 版は 4.2BSD で登場した。この関数はプロセスのシグナルマスクを sigmask に設定する。 UNIX 95 では BSD 版と互換性のない System V 版のこの関数が標準化された。 UNIX 95 版は、指定されたシグナル sig をプロセスのシグナルマスクから削除するだけである。同じ名前で互換性のない 2 つの関数があるという不幸な事態は、 sigsuspend(2) 関数によって解消された。この関数は ( int の代わりに) sigset_t * 引き数をとる。Linux での注意
Linux では、このルーチンは Sparc (sparc64) アーキテクチャでのみシステムコールとなっている。関連項目
kill(2), sigaction(2), sigprocmask(2), sigsuspend(2), sigblock(3), sigvec(3), feature_test_macros(7)この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.51 の一部である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2010-09-12 | Linux |