アプリケーションが終了するとき自動的に呼び出される閉止手続きを導入または削除する。
call "CBL_EXIT_PROC" using install-flag install-params returning status-code
呼び出しプロトタイプ使用時 ( 説明の読み方) | PIC (32 ビット システム) | ||||
---|---|---|---|---|---|
install-flag | cblt-x1-compx | pic x comp-x. | |||
install-params | Group predefined as cblt-exit-params containing: | 以下を含む集団項目: | |||
cblte-ep-install-addrs | cblt-ppointer | usage procedure-pointer. | |||
cblte-ep-install-priority | cblt-x1-compx | pic x comp-x. | |||
status-code | 説明の読み方 参照 |
install-flag | 実行される処理を示す。
|
||||||||
cblte-ep-install-addrs | 導入、導入解除、または問い合わせをする閉止手続きのアドレス |
||||||||
cblte-ep-install-priority | install-flagが3の場合、導入されている閉止手続きの0から127までの範囲の優先順位が入る。それ以外の優先順位は無視される。 |
cblte-ep-install-priority | install-flag が2の場合、選択された閉止手続きの優先順位を返す。 |
アプリケーションが正常に終了しようと(STOP RUNにより)、異常終了しようと(中断のためのキー順(Ctrl+Break)、RTSエラー等による)、手続きは実行される。本ルーチンを繰返し呼び出すことにより、アプリケーション用にいくつかの閉止手続きを導入できる。
閉止手続きは任意の言語で書くことができる。COBOLで書く場合、cblte-ep-install-addrs は入口点のアドレスとすること。次の文を用いてアドレスを得ることができる。
set install-addrs to entry "entry-name"
COBOLで書かれた閉止手続きは、CALL文を含む任意の正当なCOBOLを含むことができる。手続きの主プログラムがEXIT PROGRAM/GOBACKを行うか、STOP RUN文が実行されると、閉止手続きは終了する。
閉止手続きの呼び出し時はパラメーターが渡されない。
導入されている閉止手続きすべてに優先順位が付いている。優先順位は、手続きを実行する順番を決めるものである。つまり、最も小さい値の手続きが最初に処理される。同じ優先順位を持つ手続きがいくつかある場合は、導入の順序と逆の順序で実行される。つまり、最後に導入された手続きが最初に実行される。
優先順を指定せずに(install-flag=0)導入された手続きには64という省略時の優先順位が与えられる。優先順位を設定するには、導入フラグに3を設定して優先順位に0から127までの値を設定する。128から256の優先順位は、COBOLシステムでは逆順に解釈される。したがって、127よりも高い数字を優先順位に設定しないこと。ただし、プログラムがユーザーが書いたファイル ハンドラーの場合は例外で、この場合は200を設定する必要がある。
閉止手続きがすでに導入されている場合に、再導入しようとすると失敗する。ただし、再導入の際に使用されるcblte-ep-install-priorityが最初に導入したときの優先順位と異なっていれば、その優先順位が変更される。この場合、RETURN-CODEはゼロに設定される。
それまでに導入されている手続きの優先順位を調べるには、install-flagに2を設定する。これにより、見つかれば導入優先順位にその優先順位が返されます。手続きはcblte-ep-install-addrsによって識別される。手続きが見つからない場合は、RETURN-CODEにはゼロ以外の値が設定される。