.\" Copyright (c) 2005 Michael Kerrisk .\" based on earlier work by faith@cs.unc.edu and .\" Mike Battersby .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" 2005-09-15, mtk, Created new page by splitting off from sigaction.2 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2005 Akihiro MOTOKI all rights reserved. .\" Translated 2005-10-03, Akihiro MOTOKI .\" .TH SIGSUSPEND 2 2013\-04\-19 Linux "Linux Programmer's Manual" .SH 名前 sigsuspend \- シグナルを待つ .SH 書式 \fB#include \fP .sp \fBint sigsuspend(const sigset_t *\fP\fImask\fP\fB);\fP .sp .in -4n glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): .in .sp .ad l \fBsigsuspend\fP(): _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE .ad b .SH 説明 \fBsigsuspend\fP() は、呼び出し元プロセスのシグナルマスクを \fImask\fP で指定されたマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がアクションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。 シグナルがプロセスを終了させるものの場合、 \fBsigsuspend\fP() は返らない。シグナルが捕捉された場合、 シグナルハンドラの処理が終わった後に \fBsigsuspend\fP() は返り、シグナルマスクは \fBsigsuspend\fP() が呼び出される前の状態に復元される。 \fBSIGKILL\fP と \fBSIGSTOP\fP を禁止 (block) することはできない; これらのシグナルを \fImask\fP に指定しても、プロセスのシグナルマスクは影響を受けない。 .SH 返り値 \fBsigsuspend\fP() は常に \-1 を返し、 \fIerrno\fP にエラーの原因を示す値 (通常は \fBEINTR\fP) を設定する。 .SH エラー .TP \fBEFAULT\fP \fImask\fP が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。 .TP \fBEINTR\fP システムコールはシグナルにより割り込まれた。 .SH 準拠 POSIX.1\-2001. .SH 注意 .PP \fBsigsuspend\fP() は、通常、クリティカル・コード・セクション (critical code section) の 実行中にシグナルが配送されるのを防止するために、 \fBsigprocmask\fP(2) と組み合わせて使用される。 まず最初に、呼び出し元は \fBsigprocmask\fP(2) を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は \fBsigprocmask\fP(2) が (\fIoldset\fP 引き数で) 返すシグナルマスクを指定して \fBsigsuspend\fP() を呼び出すことで、クリティカル・コード実行中に発生した シグナルを待つことができる。 .PP シグナル集合の操作に関する詳細は \fBsigsetops\fP(3) を参照のこと。 .SH 関連項目 \fBkill\fP(2), \fBpause\fP(2), \fBsigaction\fP(2), \fBsignal\fP(2), \fBsigprocmask\fP(2), \fBsigwaitinfo\fP(2), \fBsigsetops\fP(3), \fBsigwait\fP(3), \fBsignal\fP(7) .SH この文書について この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部である。 プロジェクトの説明とバグ報告に関する情報は \%http://www.kernel.org/doc/man\-pages/ に書かれている。