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

名称
ライブラリ
書式
解説
戻り値
エラー
関連項目
歴史

jman



Time: 07:07:08 GMT, January 12, 2009