Index
OPEN

【用途】
使用するファイルのオープン。
利用ファイルは全て、必ずオープンしなければ利用できないCOBOL。必須です。

【使用例】
・入力ファイル(IN-FILE)、出力ファイル(OUT-FILE)の場合  OPEN  INPUT  IN-FILE  OUTPUT  OUT-FILE
・入出力ファイルの場合(入力と出力が同じファイル) OPEN  I-O  IN-FILE

要するに読み込み専用はINPUT、出力専門はOUTPUT、読み込みも出力もするファイルの場合にはI-Oを記述しろってこと

OPEN文


機能

OPEN(開く)文は,ファイルの処理を行うための準備をする.


一般形式

【書き方】
Image


構文規則

(1)

NO REWIND(巻き戻さず)指定は,物理順ファイルでのみ使用できる.

(2)

EXTEND(拡張)指定は,複数ファイルリールには指定できない.

(3)

EXTEND指定は,LINAGE句の指定のないファイルにだけ使用できる.

(4)

OPEN文で参照されるファイルは,同じ編成法又は同じ呼出し法でなくてもよい.


一般規則

(1)

OPEN文の実行が成功するとそのファイルは,使用可能となり,あるオープンモードで開いた状態になる.OPEN文の実行が成功すると,そのファイルは,ファイル結合子を通してファイル名と関連付けられる.
ファイルは,物理的に存在し,入出力管理システムに認識されると使用可能となる.表4.6に,使用可能なファイルと使用不可能なファイルを開くときの結果を示す.

表4.6 ファイルの使用可否
ファイルの使用可否

(2)

OPEN文の実行が成功すると,そのファイルのレコード領域が使用可能になる.ファイル名と関連するファイル結合子が外部ファイル結合子のとき,実行単位中でそのファイル結合子に関連するレコード領域はただ一つとする.

(3)

ファイルが開かれていないとき,そのファイルを明に又は暗に参照する文を実行してはならない.ただし,USING指定又はGIVING指定のあるMERGE(併合)文,OPEN(開く)文及びUSING指定又はGIVING指定のあるSORT(整列)文によって参照できる.

(4)

OPEN文の各モードに対して実行可能な入出力文は,表4.7のとおりとする.

表4.7 実行可能な入出力文
    
 文  
    
    OPEN文モード    
INPUT 
OUTPUT
I-O 
EXTEND
READ  
○  
−  
○ 
−  
WRITE  
−  
○  
− 
○  
REWRITE 
−  
−  
○ 
−  


○:実行可能

−:実行不可能

(5)

一つのファイルを同じ実行単位中で,INPUT(入力)指定,OUTPUT(出力)指定,EXTEND(拡張)指定及びI-O(入出力両用)指定によって開くことができる.OPEN文の最初の実行後に,同じファイルに対してOPEN文を実行するためには,そのファイルに対してLOCK指定のないCLOSE文を実行しておかなければならない.

(6)

OPEN文の実行は,最初のデータレコードを読んだり書いたりはしない.

(7)

OPEN文の実行中にファイル属性不整合条件が発生したとき,そのOPEN文の実行は不成功となる.

(8)

ファイルがOPEN INPUT文又はOPEN I-O文で開かれたときファイル位置指示子は1に設定される.

(9)

OPEN EXTEND文の実行は,ファイルをその最後のレコードの直後に位置付ける.順ファイルの最後のレコードは,そのファイルで最後に書かれたレコードとする.

(10)

OPEN I-O文は,I-Oモードで開かれている順ファイルに対して許される入力又は出力操作を受け入れることのできるファイルを参照しなければならない.OPEN I-O文の実行により,ファイルは入力及び出力の両方が可能なモードで開かれる.

(11)

ラベルレコードの指定のある物理順ファイルに対する始めラベルは,次のように処理される.
(a)

OPEN INPUT文の実行時に,標準のラベル規約に従いラベルを検査する.

(b)

OPEN OUTPUT文の実行時に,標準のラベル規約に従いラベルを書き出す.
磁気テープファイルにおいて,ラベルレコードの指定があってラベルがない場合,又はラベルレコードの指定がなくてラベルがある場合のOPEN文の実行結果は規定しない.

(12)

ラベルレコードが存在する物理順ファイルに対するOPEN EXTEND文の実行は,以下の手順を含む.
(a)

順単一リール/ユニットファイルの場合に限って,始めファイルラベルが処理される.

(b)

順複数リール/ユニットファイルの場合,最後のリール/ユニットの始めボリュームラベルがOPEN INPUT文の場合と同様に処理される.

(c)

終わりファイルラベルが,OPEN INPUT文の場合と同様に処理される.その後,このラベルは削除される.

(d)

ついでOPEN OUTPUT文の場合と同様に処理が行われる.

(13)

ラベルレコードが存在する物理順ファイルに対するOPEN I-O文の実行は,以下の手順を含む.
(a)

標準のラベル規約に従いラベルを検査する.

(b)

標準のラベル規約に従いラベルを書き出す.

(14)

複数ファイルテープ環境下のファイルは,単一ファイルテープ環境下の物理順ファイルと論理的に同じ扱いとする.

(15)

複数ファイルリール上のファイルの組の中の一つのファイルがOPEN文に書かれたとき,次の規則が適用される.
(a)

これらのファイルを,同時に二つ以上開いてはならない.

(b)

これらのファイルを入力モードで開くとき,その順序に制限はない.

(c)

ファイル名で参照されるファイルの一つがOPEN OUTPUT文の主体であるとき,関連する複数ファイルリール上でそのファイルの位置番号より小さい位置番号を持つファイルはすべて,そのOPEN文を実行する時には,すでにそのテープリール上に存在しなければならない.更に,その複数ファイルリール上で,そのファイルの位置番号より大きな位置番号を持つファイルは,その時点でそのテープリール上にあってはならない.

(d)

各ファイルは,物理順ファイルでなければならない.

(16)

NO REWIND(巻きもどさず)指定は次のファイルに対してだけ指定できる.
(a)

順単一リール/ユニットファイル.

(b)

複数ファイルテープ環境で,一つのテープリール内に完全に含まれる順ファイル.

(17)

NO REWIND指定は,ファイルが存在する媒体に適用できない場合(例えば大記憶ファイル),無視される.

(18)

ファイルに割り当てられた装置が巻きもどし可能ならば,次の規則を適用する.
(a)

EXTEND指定又はNO REWIND指定のいずれも指定されない場合,OPEN文の実行は,ファイルをその始めに位置付ける.

(b)

NO REWIND指定を書くと,OPEN文の実行は,ファイルの位置を変更しない.ファイルはそのOPEN文の実行に先立って,あらかじめその始めの位置に位置付けておかなければならない.

(19)

物理順ファイルに対するOPEN文の実行が成功すると,ボリューム指示子は次のように設定される.
(a)

使用可能な入力ファイル又は入出力両用ファイルに対しては,最初のリール/ユニット又は唯一のリール/ユニットを指す.

(b)

拡張ファイルに対しては,最後のレコードを含むリール/ユニットを指す.

(20)

OPEN文の実行により,ファイル名に関連する入出力状態の値が更新される.

(21)

一つのOPEN文に二つ以上のファイル名を書いたとき,このOPEN文の実行結果は,各ファイル名をこのOPEN文に書いた順序で別々のOPEN文に書いた場合と同じとする.

(22)

ファイルの最小のレコードの大きさ及び最大のレコードの大きさは,そのファイルを生成した時に定まり,その後変更してはならない.

(23)

一つの実行単位の中で,印字用として作成されたファイルをOPEN INPUT文又はOPEN I-O文で開いてはならない.


Index