SIGINTERRUPT
Section: C Library Functions (3)
索引
jman
BSD mandoc
索引
名称
siginterrupt
- シグナルがシステムコールを中断できるようにする
索引
ライブラリ
Lb libc
索引
書式
In signal.h
Ft int
Fn siginterrupt int sig int flag
索引
解説
Fn siginterrupt
関数を使用して、システムコールが指定のシグナルによって割り込まれたときに、
システムコール再開始の動作を変更します。
フラグが偽 (0) の場合、システムコールは、指定のシグナルによって割り込みされ、
しかもデータがまだ転送されていない場合に再開始されます。
システムコールの再開始は、
BSD 4.2
以降のデフォルトの動作であり、
Fx での
signal(3)
のデフォルトの
動作です。
フラグが真 (1) の場合、
システムコールの再開始は無効になります。
システムコールが指定のシグナルによって割り込みされ、
しかもデータが転送されていない場合、
システムコールは -1 で返り、グローバル変数
errno
は
Er EINTR
に設定されます。
データの転送を開始した中断されたシステムコールは、
実際に転送されたデータの量を返します。
システムコール割り込みは、
BSD 4.1
と
AT&T System
V
システムに見られるシグナルのふるまいです。
新しい
BSD 4.2
シグナル処理のセマンティクスはどちらにしても変更されていません。
最も注目すべきは、シグナルハンドラは、後続の
sigaction(2)
呼び出しによって明示的に変更されるまで、そして
sigaction(2)
で文書化したようにシグナルマスクが動作するまで、
必ずインストールされたままになることです。
プログラムは、プログラムの実行の間、必要なだけ頻繁に再起動可能な
システムコール操作と割り込み可能なシステムコール操作の間で切り替えできます。
シグナルハンドラの実行の間に
Fn siginterrupt 3
を呼び出すと、捕捉される次のシグナルで
新しい処置が行われます。
索引
注
このライブラリルーチンは、
BSD 4.2
では利用できない
sigaction(2)
システムコールの拡張を使用しています。
ですから、後方互換性が必要な場合、これは使用しないでください。
索引
戻り値
Rv -std siginterrupt
索引
エラー
Fn siginterrupt
呼び出しは、次の場合に失敗します:
- Bq Er EINVAL
-
Fa sig
は有効なシグナル番号ではありません。
索引
関連項目
sigaction(2),
sigblock(2),
sigpause(2),
sigsetmask(2),
signal(3)
索引
歴史
Fn siginterrupt
関数は
BSD 4.3
で登場しました。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 注
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 歴史
-
Time: 07:07:08 GMT, January 12, 2009