目的
CLOSE ステートメントは外部ファイルを装置から切断します。
構文
>>-CLOSE--(--close_list--)-------------------------------------><
|
- close_list
- 装置指定子 (UNIT=u) を必ず 1 つ
含んでいなければならないリストです。このリストには、許可されている他の指定子をそれぞれ 1 つずつ入れることができます。
有効な指定子は次のとおりです。
- [UNIT=] u
- 装置指定子です。u は外部装置指定子で、
その値はアスタリスクであってはなりません。
外部装置識別子は整数式
(1 から 2147483647 までの範囲の値を持つ) で表される
外部ファイルを参照します。
オプションの文字である UNIT= を省略する場合は、close_list の最初の項目として
u を指定しなければなりません。
- ERR= stmt_label
- エラーが発生した場合に制御が移される同じ有効範囲単位内の
実行可能ステートメントのステートメント・ラベルを指定するエラー指定子です。
ERR= 指定子をコーディングすると、エラー・メッセージは抑制されます。
- IOMSG= iomsg_variable
- 入出力操作によって戻されるメッセージを指定する入出力状況指定子です。
iomsg_variable は、デフォルトのスカラー文字変数です。これを、使用関連付けされた非ポインター保護変数にすることはできません。
この指定子を含む入出力ステートメントの実行が完了すると、iomsg_variable は以下のように定義されます。
- エラー、ファイルの終わり、またはレコードの終わりという条件が発生した場合、この変数には割り当てによる場合と同様に説明メッセージが割り当てられます。
- そのような条件が発生しなかった場合には、変数の値は変更されません。
- IOSTAT= ios
- 入出力操作の状況を示す入出力状況指定子です。
ios は整変数です。この入出力ステートメントの実行が完了すると、ios 指定子は次の値に定義されます。
- エラーが発生しなかった場合は 0
- エラーが発生した場合は正の値
- STATUS= char_expr
- ファイルのクローズ後の状況を示します。
char_expr はスカラー文字式であり、その値は、末尾ブランクを除去すると KEEP または DELETE の
いずれかになります。
- 既存のファイルに対して KEEP を指定した場合、
CLOSE ステートメントを実行した後も、そのファイルは
存在し続けます。存在しないファイルに対して KEEP を指定した場合、CLOSE ステートメントを実行した後にも、そのファイルは
存在しません。
CLOSE ステートメントの実行前の状況が SCRATCH である
ファイルに対して KEEP を指定することはできません。
- DELETE を指定した場合、CLOSE ステートメントを
実行すると、そのファイルは存在しなくなります。
ファイル状況が SCRATCH の場合、デフォルトは DELETE です。
それ以外の場合、デフォルトは KEEP です。
規則
装置を参照する CLOSE ステートメントは実行可能プログラム
のどのプログラム単位の中に置いてもかまいません。その装置を
参照する OPEN ステートメントと同じ有効範囲単位内に
置く必要はありません。
存在しない装置またはファイルが接続されていない装置を指定することも
できますが、その場合、CLOSE ステートメントは何の効力も持ちません。
装置 0 はクローズできません。
実行可能プログラムが、エラー以外の理由によって停止すると、
接続されているすべての装置はクローズされます。
終了前のファイル状況が SCRATCH でない限り、
装置は KEEP 状態でクローズされます。SCRATCH の
場合、装置は DELETE 状態でクローズされます。
結果として、STATUS= 指定子の付いていない CLOSE ステートメントが、それぞれの接続装置で実行されたかの
ようになります。
事前に接続されていた装置が CLOSE ステートメントによって切断された場合、その装置が後で
WRITE ステートメントの中で指定されると (明示的にオープンされずに)、暗黙的なオープン規則が
適用されます。
例
CLOSE(15)
CLOSE(UNIT=16,STATUS='DELETE')
関連情報
