HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > s > sigsuspend - システムコールの説明

sigsuspend - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 注意
  7. 準拠
  8. 関連項目

名前

sigsuspend - シグナルを待つ

書式

#include <signal.h>
int sigsuspend(const sigset_t * mask );

説明

sigsuspend ()は、呼び出し元プロセスのシグナルマスクを mask で指定されたマスクに一時的に置き換え、 シグナルハンドラの起動もしくはプロセスの終了がアクションとして 設定されたシグナルが配送されるまで、そのプロセスを停止する。
シグナルがプロセスを終了させるものの場合、 sigsuspend ()は返らない。シグナルが捕捉された場合、 シグナルハンドラの処理が終わった後に sigsuspend ()は返り、シグナルマスクは sigsuspend ()が呼び出される前の状態に復元される。
SIGKILL と SIGSTOP を禁止 (block) することはできない; これらのシグナルを mask に指定しても、プロセスのシグナルマスクは影響を受けない。

返り値

sigsuspend ()は常に -1 を返し、通常は EINTR エラーが発生する。

エラー

EFAULT
mask が指しているメモリが、プロセスのアドレス空間の有効な部分ではない。
EINTR
システムコールはシグナルにより割り込まれた。

注意

sigsuspend ()は、通常、クリティカル・コード・セクション (critical code section) の 実行中にシグナルが配送されるのを防止するために、 sigprocmask ()と組み合わせて使用される。 まず最初に、呼び出し元は sigprocmask ()を使ってシグナルを禁止する。 クリティカル・コードが完了すると、呼び出し元は sigprocmask ()が ( oldset 引き数で) 返すシグナルマスクを指定して sigsuspend ()を呼び出すことで、クリティカル・コード実行中に発生した シグナルを待つことができる。

シグナル集合の操作に関する詳細は   sigsetops (3) を参照のこと。

準拠

POSIX.1-2001.

関連項目

Linux Tips 関連記事
Linux Tips(目次)
Linux ディストリビューション一覧
rpm のファイル名にあるi386とかi686とは
自分のマシンの情報を調べる
cron の設定
ssh の root ログインを禁止する
ssh を、ユーザ、IPでアクセス制限
鍵交換方式によるssh接続
鍵交換方式によるssh接続( windowsから )
複数ファイル内の文字列を置換して上書き保存する
あるグループをイニシャルグループとするユーザー一覧出力
複数ファイルのファイル名を一括変換する
連番ファイルをコマンド一発で作成する
中身がランダムなファイルを任意のサイズで作成する
Linux ユーザーアカウントをロック・アンロックする