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

     入力:
      signum はシグナル番号 ( signal (3HEAD) を参照) です。
      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 ビット環境または静的にリンクされた
     コードではほとんど発生しません。

     Linux システムでは、 signal() のマニュアルページはマニュアル
     ペー ジのセクション 2、シグナル番号はそのセクション 7 に用意
     されています。