FILE

FILE はデータ型属性です。VARIABLE 属性なしで使用した場合、FILE は、宣言された名前が、外部範囲を持つファイル識別子であること、およびオペレーティング システムで認識されているファイルやデバイスに対する入出力の実行に使用できるファイル制御ブロックに関連付けられていることを指定します。この場合は、EXTERNAL 属性に加えて、ファイル記述属性 RECORD、STREAM、INPUT、OUTPUT、UPDATE、KEYED、DIRECT、SEQUENTIAL、および PRINT のいずれかを指定することもできます。宣言で指定されたファイル記述属性は、OPEN 文で指定された属性、またはファイル制御ブロックを暗黙的に開く入出力文で暗黙指定された属性と組み合わされます。

VARIABLE 属性とともに使用した場合、FILE は、宣言された名前が、ファイル値を代入できるファイル変数であることを指定します。この場合は、ファイル変数にファイル値が代入されるまで、ファイル変数には関連付けられたファイル制御ブロックがないため、ファイル記述属性は指定できません。ファイル記述属性は、ファイル制御ブロックの属性であり、ファイル値またはファイル変数の属性ではありません。

暗黙的に宣言された名前に対する属性の一部は、その名前が記述されている文脈から判断できることがあります。このようなケースについては、文脈宣言と呼ばれます。FILE オプション、またはファイル名を必要とする条件の ON、SIGNAL、REVERT 文で記述された名前には、FILE 属性が設定されます。次に例を示します。

OPEN FILE(F);
WRITE FILE(W) FROM(BUF); 
READ FILE(R) INTO(BUF); 
CLOSE FILE(C);

上記の 4 つのケースすべてにおいて、FILE オプションで使用されている名前は、ファイル データ型を持つ要素として暗黙的に宣言されます。