EXIT PROGRAM、STOP RUN、GOBACK、および CANCEL を内部ファイルで使用した場合の効果
次のステートメントを使用すると、ファイルの状態がそれぞれ以下のように変わります。
- EXIT PROGRAM ステートメントは、
実行単位のファイルの状況を変更することはありません。ただし、次の場合は例外です。
- EXIT PROGRAM を発行する ILE COBOL プログラムに INITIAL 属性がある場合。
INITIAL 属性がある場合、そのプログラムで定義されているすべての内部ファイルはクローズされます。
- AND CONTINUE RUN UNIT 句の指定された EXIT PROGRAM ステートメントを使用するサブプログラムも、最後に使用した状態のままです。
その場合、メイン・プログラムから呼び出し側に制御が戻り、次いで *NEW 活動化グループは終了して、
活動化グループ内の全ファイルはクローズされます。
- STOP RUN ステートメントは、最も近い制御境界でプログラムの呼び出し側に制御を戻します。
これがハード管理境界である場合は、活動化グループ (実行単位) が終了し、その活動化グループの範囲のすべてのファイルをクローズします。
- メイン・プログラムから出された GOBACK ステートメント (これは常にハード制御境界にある) の動作は、STOP RUN ステートメントと同じです。
サブプログラムから出された GOBACK ステートメントの動作は、EXIT PROGRAM ステートメントと同じです。
サブプログラムから出された GOBACK ステートメントが実行単位のファイルの状況を変更することはありません。
ただし、GOBACK を出した ILE COBOL プログラムに INITIAL 属性がある場合を除きます。
INITIAL 属性がある場合、そのプログラムで定義されているすべての内部ファイルはクローズされます。
- CANCEL ステートメントにより、内部ファイルに関する情報を含むストレージはリセットされます。
プログラムに CANCEL ステートメントの処理時にオープンされていた内部ファイルがある場合、
それらの内部ファイルはプログラム取り消し時にクローズされます。
プログラムは、再オープンしない限りそのファイルを使用できなくなります。
一度取り消したプログラムを再度呼び出した場合、プログラムはファイルをクローズしているものと見なします。
プログラムがファイルをオープンすると、そのファイルに対する新しいリンケージが確立されます。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.