SIGNAL(3F7768) — NEWS-OS Programmer’s Manual
名称
signal − シグナルに対する動作を変更する
形式
integer function signal(signum, proc, flag)
integer signum, flag
external proc
解説
プロセスがシグナルを受信した場合 ( signal(3C) 参照)、 デフォルトの動作として、通常、 処理を終了しアボートします。 ユーザは、シグナル処理ルーチンを 書き込むことが選択できます。 この別の動作をシステムに指定する方法が、 signal を呼び出すことです。
signum はシグナル番号 ( signal(3C) 参照) です。 flag が負の値の場合、 proc はユーザのシグナル処理ルーチン名でなくてはなりません。 flag がゼロ、 または正の値の場合、 proc は無視され、 flag の値を シグナル処理の定義としてシステムに渡します。 これは、 特に、 以前にセーブしておいたシグナル処理を 復元できる方法です。 また、 flag が取り得る 2 つの値には、 特定の意味があります。 0 は、"デフォルトの動作をする" (以下の注意事項を参照) ことを示し、 1 は、"このシグナルを無視する" ことです。
正のリターン値は、以前の処理の定義です。 1 より大きい値は、 受信シグナルの発生時に呼び出されるはずだったルーチンのアドレスです。 また、 リターン値を使って、一連の signal を呼び出し、 以前の動作の定義を復元することができます。 負のリターン値は、 システムエラーコードを符号変換したものです ( perror(3F7768) 参照)。
関連ファイル
/usr/lib/libU7768.a
関連事項
signal(3C), kill(3F7768), kill(1)
注意事項
プロセスが開始されるとき、 f77 は特定のシグナルをトラップする準備をします。 デフォルトの f77 の動作を復元する唯一の方法は、 最初の signal の呼び出しからのリターン値を セーブすることです。
ユーザのシグナルハンドラが呼び出されると、 これは整数引数としてシグナル番号に渡されます。
NEWS-OSRelease 4.2.1R