ILE COBOL 解説書
CLOSE
ステートメントは、オープン・モードであるファイルに対してしか実行できません。
REEL 句または UNIT 句のない CLOSE
ステートメントが正常に実行されると、次のような結果が生じます。
- ファイル名-1 に関連するレコード域が使用できなくなります。 CLOSE
ステートメントの実行が失敗すると、レコード・データの使用可能性が未定義のままにとどまります。
- 該当のファイルに対する OPEN
ステートメントは、それ以外の入出力ステートメントに先立って実行しなければなりません。
以下の考慮事項は、CLOSE ステートメントの使用に適用されます。
- ファイルがオープン状況で CLOSE ステートメントの実行が失敗した場合、この
ファイルの EXCEPTION/ERROR プロシージャーが (指定されていれば) 実行されます。
- REEL 句または UNIT 句のない CLOSE
ステートメントが、実行単位が終了する前、あるいはプログラムが取り消される前に処理されなかった場合、ファイルは暗黙的にクローズされます。
- 該当のファイルのファイル制御記入項目で SELECT OPTIONAL
文節が指定されてはいるが、そのファイルが実行時に存在しない場合には、標準のファイル終わり処理は実行されません。
- FILE-CONTROL 記入項目に FILE STATUS 文節が指定されている場合には、CLOSE
ステートメントの実行時に、関連した状況キーが更新されます。 状況キーの詳細は 共通の処理機能を参照してください。
- 相対ファイルのみ:
相対ファイルの境界を現時点のレコード数を超えてファイル・サイズの範囲内で拡張するには、
削除されたファイルを INZPFM
コマンドを使用してそのファイルの処理前に追加します。
さらに多くのレコードがファイルに追加される必要があり、ファイル状況 0Q
が受け取られた場合、これを行う必要があります。
相対ファイルを現在のサイズ以上に拡張しようとするどちらの試みも、境界違反となります。
COBOL は、この COBOL
プログラムの処理中に該当するファイルが再びオープンされることがないようにします。
WITH LOCK
でクローズした外部ファイルは、実行単位内では再びオープンすることができません。
これには、外部ファイルで定義されているその他のプログラムも含まれます。
[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]