アプリケーションの終了時に自動的に呼び出される終了プロシージャを登録または解除します。
構文:
call "CBL_EXIT_PROC" using install-flag
install-params
returning status-code
パラメーター
- install-flag
- 呼び出しプロトタイプ (「説明の読み方」を参照):cblt-x1-compx
- PIC:pic x comp-x
- install-params
- cblt-exit-params として定義されている集団 (以下を含む)
01 cblt-exit-params typedef.
03 cblte-ep-install-addr cblt-ppointer. *> usage procedure-pointer.
03 cblte-ep-install-priority cblt-x1-compx. *> pic x comp-x
- status-code
- 「説明の読み方」を参照。
入力パラメーター:
- install-flag
- 実行する処理
0 |
終了プロシージャをデフォルトの優先度 (64) で登録します |
1 |
終了プロシージャを登録解除します |
2 |
登録済みの終了プロシージャの優先度を問い合わせます |
3 |
終了プロシージャを指定された優先度で登録します |
- cblte-ep-install-addrs
- 登録、登録解除、または問い合わせる終了プロシージャのアドレス
- cblte-ep-install-priority
- install-flag に 3 を指定した場合に、登録する終了プロシージャの優先度を設定します。優先度の範囲は 0 から 127 です。それ以外の場合は、無視されます。
出力パラメーター:
- cblte-ep-install-priority
- install-flag が 2 に設定されている場合に、選択されたプロシージャの優先度を返します。
説明:
登録した終了プロシージャは、アプリケーションが STOP RUN で正常終了した場合のみでなく、キーボード割り込みや RTS エラーなどで異常終了した場合にも実行されます。このルーチンを繰り返し呼び出すことで、1 つのアプリケーションに複数の終了プロシージャを登録できます。
終了プロシージャは任意の言語で記述できます。COBOL の場合は、cblte-ep-install-addrs にエントリ ポイントのアドレスを指定する必要があります。エントリ ポイントのアドレスは、次の文で取得できます。
COBOL の終了プロシージャには、CALL 文を含む有効な COBOL コードを必要に応じて使用できます。終了プロシージャは、その中のメイン プログラムで EXIT PROGRAM または GOBACK が実行されるか、STOP RUN 文が実行されると終了します。
終了プロシージャには、呼び出し時に渡すべきパラメーターはありません。
登録したすべての終了プロシージャは優先度を持っており、その値によって実行される順序が決まります。優先度の値が小さいプロシージャが先に実行されます。複数のプロシージャの優先度の値が同じである場合には、実行順序は登録とは逆になります。つまり、最後に登録したプロシージャが最初に実行されることになります。
登録時に優先度を指定しない (install-flag = 0) 場合には、デフォルトの優先度である 64 が割り当てられます。任意の優先度を割り当てるには、install-flag に 3 を指定し、0 から 127 の範囲内で優先度を設定します。128 から 256 の範囲の優先度は COBOL システム用に予約されており、使用することはできません。ただし、独自に作成したファイル ハンドラーには優先度として 200 を割り当てる必要があります。
登録済みの終了プロシージャは、再登録を試みても無視されます。ただし、異なる優先度で再登録を試みた場合は、該当する登録済みプロシージャの優先度が変更されます。RETURN-CODE はゼロに設定されます。
登録済みプロシージャの優先度を照会するには、install-flag を 2 に設定します。この呼び出しで対象のプロシージャが見つかると、その優先度が cblte-ep-install-priority で返されます。プロシージャは cblte-ep-install-addrs で識別されます。プロシージャが見つからない場合には、RETURN-CODE がゼロ以外の値に設定されます。