OPEN

:外部ファイルを装置に接続する,新しいファイルを作成して装置に接続する,事前接続ファイルを作成する,特定の接続プロパティを変更するといった操作を行います。

形式

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 回しか指定できません)。

ACCESS CONVERT MODE RECORDTYPE
ACTION DEFAULTFILE NAME SHARE
ASSOCIATEVARIABLE DELIM ORGANIZATION SHARED
BLANK DISPOSE PAD STATUS
BLOCKSIZE FILE POSITION TITLE
BUFFERCOUNT FORM READONLY TYPE
BUFFERED IOFOCUS RECL USEROPEN
CARRIAGECONTROL MAXREC RECORDSIZE  

OPEN 指定子とその使用可能な値を「OPEN」に要約します。

OPEN 文で指定できる制御指定子については,「I/O 制御情報並び」で説明しています。

規則と振る舞い

制御指定子 ([UNIT=]io-unit, ERR=label, および IOSTAT=i-var) と OPEN 指定子は,OPEN の後の括弧内の任意の場所に置くことができます。ただし,UNIT 指定子が省略されている場合,io-unit が並びの先頭になくてはなりません。

スカラ数値式である指定子の値には,任意の整数式または実数式を使用することができます。式の値は,OPEN 文中で使用される前に整数データ型に変換されます。

1 つのファイルに対しては一度に 1 つの装置しか接続できませんが,同じ装置に対して複数の OPEN を実行することが可能です。すでに存在する装置に対して OPEN 文が実行されたときには,以下の処理が行われます。

以前に実行された OPEN 文の ERR および IOSTAT 指定子は,現在実行中の OPEN 文には影響を与えません。エラーが発生した場合,ファイルを作成したり,開いたりする作業は行われません。

IOSTAT が指定されていると,二次的なオペレーティング・システム・メッセージは表示されません。これらのメッセージを表示するには,IOSTAT を削除するか,プラットフォーム固有の手法を使用してください。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

CLOSEFORMATINQUIREOPENREADWRITE

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')