インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
ディスクファイルを開くときに OPEN 文の POSITION 指定子を使用することで、ファイル内の開始レコード位置として、次のいずれかを指定することができます。
第 1 レコードの前の初期位置 (POSITION='REWIND')。
シーケンシャル・アクセスの READ 文または WRITE 文は、ファイルの第 1 レコードを読み取りまたは書き込みます。
ファイル内の最終レコードの後ろ (POSITION='APPEND')。つまり EOF レコードがある場合は、その直前に位置します。
新規ファイルでは、この位置が第 1 レコードの前の初期位置になります ('REWIND' と同様)。既存のシーケンシャル・ファイルに対して、シーケンシャル・アクセスを使用する場合、レコードを書き込む前に、'APPEND' を指定することができます。
現在の位置 (POSITION='ASIS')。
これは通常、ファイルを再結合する時に、現在のレコード位置を維持するためだけに使用されます。2 回目の OPEN で、同じユニット番号および同じファイル名を指定することで (ファイル名は省略可)、現在のレコード位置を維持したままで、そのファイルを再び開くことができます。ただし、2 回目の OPEN で同じユニット番号に対して異なるファイル名を指定すると、現在開いているファイルが閉じられ、指定したファイルが開きます。
次の I/O 文を使用すると、現在のレコード位置を変更することができます。
REWIND では、レコード位置が第 1 レコードの前の初期位置に設定されます。シーケンシャル・アクセスの READ 文または WRITE 文では、ファイルの第 1 レコードを読み取りまたは書き込みます。
BACKSPACE では、レコード位置がファイル内の 1 つ前のレコードに設定されます。シーケンシャル・アクセスを使用してレコード 5 を書き込み、そのユニットに対して BACKSPACE を発行した後に、ユニットから読み取りを行うと、レコード 5 が読み込まれます。
ENDFILE では、EOF マークが書き込まれます。通常、これは、シーケンシャル・アクセスを使用してレコードを書き込んだ後で、ファイルを閉じる直前に実行します。
ノンアドバンシング I/O を使用しない限り、通常、レコードの読み取りおよび書き込みでは、現在のレコード位置が 1 レコード単位で前に進みます。単一のレコード I/O 文を使用して、複数のレコードを転送することもできます。