装置番号
入出力するファイルに紐づけて管理するための番号。
open()で装置番号とファイルとの紐づけを、close()でその解除を行う。
シングルトン
プログラムに固有の番号なので、その情報はメインプログラム、内部手続き、外部手続き、モジュールの内部手続き・関数など、全てで共有される。このように、1つのアプリケーションに1つしか実体がない構造体のことをシングルトンと呼ぶらしい。
例えば、メインプログラムで装置番号11と"file.dat"というファイルを紐づけた場合、サブルーチンで装置番号11に書き出しを行うと"file.dat"に書き込みが行われる。
file.datの中身はこんな感じになる。
指定可能な値
マシンによって異なるようで、0から99、1から99、0から2,147,483,647など、様々である。
デフォルトで標準エラー出力、標準入力などと紐づけられている番号も装置によって異なるのかは分からないが、よく書かれているのは以下のような対応になっている。
0: 標準エラー出力
5: 標準入力
6: 標準出力
なのでファイルの入出力の際はこれらの番号は避け、10番以降を使うことが多いようである。
装置番号の状態を確認する
inquire([unit=]io-unit, opened=stat)
unit: 装置番号 (整数)
stat: 装置番号がファイルに紐づけられているか (論理値)