# マニュアルページ signal.3f

## 名前

         signal - シグナルに対するアクションの変更

## 形式

         integer*4 function signal(signum, proc, flag)
         integer*4 signum, flag
         external proc

         64 ビット環境の場合:
              integer*8 function signal(signum, proc, flag)
         integer*8 flag
         integer*4 signum
         external proc

         64 ビット環境で使用することができるように、コンパイ ラ オ プ
         ショ ン  -xarch=v9  を付けてコンパイルする場合、 proc および
         flag が integer*8 として宣言されなくてはなりません。こ の ほ
         か、 signal の結果を受け取る変数についても同様の処理が必要で
         す。

## 機能説明

         プロセスがシグナル ( signal (3) 参照) を生成すると、通常、デ
         フォルトのアクションではクリーンアップを行なって、異常終了し
         ます。ユーザーは、必要であれば別のアクションを行うシグナル処
         理ルーチンを用意することができます。 signal を呼び出すことに
         より、自分で用意したルーチンのアクションをシステムに指定する
         ことができます。

         入力:
          signum はシグナル番号 ( signal (3) を参照) です。
          proc はユーザー定義のシグナル処理ルーチン名です。
          flag の値が負のとき、 proc はユーザー定義のシグナル処理ルー
          チンの名前でなければなりません。
          flag がゼロまたは正のとき、 proc は無視され、 flag はシグナ
          ル アクション定義としてシステムに渡されます。特に、これは以
          前に保存されたシグナルアクションがどのようにリストアされ た
          かを示すものです。
          flag がとり得る 2 つの値には固有の意味があります。
          0 はデフォルトのアクションを使用 (下記の「注意事項」を参照)、
          1 はこのシグナルの無視を意味します。

         出力:
          正の戻り値は、以前のアクション定義です。
          1 より大きな値は、特定のシグナルが発生した場合に、呼び出 す
          よ うに定義されていたルーチンのアドレスです。この戻り値を使
          用した後で signal を呼び出すと、以前のアクション定義をリ ス
          トアできます。
          負の戻り値はシステムエラーコードを反転した値です  (  perror
          (3F) を参照)。
          戻り値を使って、次に signal を呼び出すと、前のアクション 定
          義を戻すことができます。

## ファイル

         libfui.a libfui.so

## 関連項目

         kill(1)、 signal(3c)、 kill(3F)

## 注意事項

         負の flag 値が V9 環境に必要な場合、 signal への呼び出 し で
         INTEGER*8 リテラル値 -1_8 を使用してください。

         ユーザー定義のシグナルハンドラが呼び出されると、整数の引数と
         してシグナル番号が渡されます。

         flag として渡される関数のコードが高いビット設定のアドレス に
         読 み 込まれた場合、この関数が失敗する可能性があります。これ
         は、正の値に対しての動作が必要な場合に flag の負の値として解
         釈 さ れ ます。これは、64 ビット環境または静的にリンクされた
         コードではほとんど発生しません。