文:外部ファイルを装置に接続する,新しいファイルを作成して装置に接続する,事前接続ファイルを作成する,特定の接続プロパティを変更するといった操作を行います。
形式
OPEN ([UNIT=]io-unit [, FILE=name] [, ERR=label] [, IOSTAT=i-var], slist)
io-unit
外部装置指定子。
name
接続するファイルの名前を指定する文字または数値式。詳細については,「FILE 指定子」と「STATUS 指定子」を参照してください。
label
エラーが発生した場合に制御を受け取る飛び先文の文番号。
i-var
エラーが発生した場合の正の整数 (エラー・メッセージの番号),ファイル終了記録に到達した場合の負の整数,およびエラーが発生した場合のゼロとして定義されるスカラ整数変数。詳細は,「I/O 状態指定子」を参照してください。
slist
specifier=value または specifier の形の 1 つまたは複数の OPEN 指定子 (個々の指定子は 1 回しか指定できません)。
OPEN 指定子とその使用可能な値を「OPEN 文」に要約します。
OPEN 文で指定できる制御指定子については,「I/O 制御情報並び」で説明しています。
規則と振る舞い
制御指定子 ([UNIT=]io-unit, ERR=label, および IOSTAT=i-var) と OPEN 指定子は,OPEN の後の括弧内の任意の場所に置くことができます。ただし,UNIT 指定子が省略されている場合,io-unit が並びの先頭になくてはなりません。
スカラ数値式である指定子の値には,任意の整数式または実数式を使用することができます。式の値は,OPEN 文中で使用される前に整数データ型に変換されます。
1 つのファイルに対しては一度に 1 つの装置しか接続できませんが,同じ装置に対して複数の OPEN を実行することが可能です。すでに存在する装置に対して OPEN 文が実行されたときには,以下の処理が行われます。
ファイル名が同じである場合,BLANK,CONVERT,CARRIAGECONTROL, DELIM,DISPOSE,ERR,IOSTAT,および PAD 指定子の値は変更することができます。その他の OPEN 指定子の値は変更できず,ファイル位置は影響を受けません。
FILE が別のファイル名を指定している場合,以前のファイルが閉じられ,新しいファイルが装置に接続されます。
以前に実行された OPEN 文の ERR および IOSTAT 指定子は,現在実行中の OPEN 文には影響を与えません。エラーが発生した場合,ファイルを作成したり,開いたりする作業は行われません。
IOSTAT が指定されていると,二次的なオペレーティング・システム・メッセージは表示されません。これらのメッセージを表示するには,IOSTAT を削除するか,プラットフォーム固有の手法を使用してください。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
CLOSE,FORMAT,INQUIRE,OPEN 文,READ,WRITE
例
OPEN 文中で指定子の値を文字式に置き換えることで,文字値を実行時に指定することができます。この文字値は,末尾の空白は含んでいてもかまいませんが,先頭の空白や埋め込み空白を含んでいてはなりません。
CHARACTER*6 FINAL /' '/ ... IF (expr) FINAL = 'DELETE' OPEN (UNIT=1, STATUS='NEW', DISP=FINAL)
次の文は,基本ファイル名 fort.1 を使って,装置 1 上に新しい書式付き順編成ファイルを作成します。
OPEN (UNIT=1, STATUS='NEW', ERR=100)
次の文は,磁気テープ上にファイルを作成します。
OPEN (UNIT=I, FILE='/dev/rmt8', & STATUS='NEW', ERR=14, RECL=1024)
次の文は,入力のために (前の例で作成した) ファイルを開きます。
OPEN (UNIT=I, FILE='/dev/rmt8', READONLY, STATUS='OLD', & RECL=1024)
次の文は,既存のファイル /usr/users/someone/test.dat を開きます。
OPEN (unit=10, DEFAULTFILE='/usr/users/someone/', FILE='test.dat', & FORM='FORMATTED', STATUS='OLD')
以下の例は新しいファイルを開いています。
! ユーザーにファイル名の入力を要求し,それを読み取ります。 CHARACTER*64 filename WRITE (*, '(A\)') ' enter file to create: ' READ (*, '(A)') filename ! 書式付き順番探査でファイルを装置番号 7 に開きます。 ! 探査方法の指定を行う必要がないことに注意してください。 ! これは基本設定だからです (つまり "formatted")。 OPEN (7, FILE = filename, ACCESS = 'SEQUENTIAL', STATUS = 'NEW') ! 以下の例は,既存のファイル DATA3.TXT を開いています。 ! エディタで作成されたファイル "DATA3.TXT" を装置番号 3 で開きます。 OPEN (3, FILE = 'DATA3.TXT')