目的
INQUIRE ステートメントは名前付きファイルの特性、
または特定の装置との接続状況に関する情報を取得します。
INQUIRE ステートメントには次の 3 つの形式があります。
- ファイルによる照会。この場合、FILE= 指定子が必要です。
- 出力リストによる照会。この場合、IOLENGTH= 指定子が必要です。
- 装置による照会。この場合、UNIT= 指定子が必要です。
構文
>>-INQUIRE--+-(--inquiry_list--)-----------------------+-------><
'-(--IOLENGTH--=--iol--)--output_item_list-'
|
- iol
- 不定様式の出力ステートメント内の出力リストを
使用した後の、データのバイト数を示します。
iol はスカラー整変数です。
- output_item
- PRINT または WRITE ステートメントを
参照してください。
- inquiry_list
- INQUIRE ステートメントのファイルによる
照会用および装置による照会用の照会指定子のリストです。
ファイルによる照会の形式には装置指定子を含むことはできず、
装置による照会の形式にはファイル指定子を指定することができません。
どの INQUIRE ステートメントにも 2 回以上指定子を指定することはできません。
照会指定子には、次のものがあります。
- [UNIT=] u
- 装置指定子です。
これは、装置による照会の形式のステートメントを照会する装置を指定します。
u は、アスタリスク以外の値を持つ外部装置識別子でなければなりません。
外部装置識別子は、整数式で表される外部ファイルを参照します。
この識別子の値は 0 から 2147483647 まで範囲になります。
オプションの文字である UNIT= を省略する場合は、inquiry_list の
最初の項目として u を指定しなければなりません。
- ACCESS= char_var
- ファイル接続が直接アクセス用、順次アクセス用、
ストリーム・アクセス用のいずれであるかを示します。
char_var はスカラー文字変数で、ファイルが順次アクセス用に接続されている場合は、値
SEQUENTIAL が割り当てられます。ファイルが直接アクセス用に接続されている場合は、
値 DIRECT が割り当てられます。
ファイルがストリーム・アクセス用に接続されている場合は、値 STREAM が割り当てられます。
接続がない場合、char_var には値 UNDEFINED が割り当てられます。
- ACTION= act
- ファイルが読み取りまたは書き込み、あるいはその両方のアクセス用に接続されているかどうかを示します。act はスカラー文字変数です。
ファイルが入力用だけに接続されている場合は値 READ、
ファイルが出力用だけに接続されている場合は値 WRITE、
ファイルが I/O 用に接続されている場合には値 READWRITE、
接続がない場合には値 UNDEFINED がそれぞれ割り当てられます。
+----------------------------------IBM 拡張----------------------------------+
- ASYNCH= char_variable
- 装置が非同期アクセス用に接続されているかどうかを示します。
char_variable は、値を戻す文字変数です。
- YES。装置が同期アクセスと非同期アクセスの両方用に
接続されている場合。
- NO。装置が同期アクセス用にのみ接続されている場合。
- UNDEFINED。装置が接続されていない場合。
+------------------------------End of IBM 拡張-------------------------------+
- BLANK= char_var
- 定様式入出力用に接続されたファイルのブランクに関する
デフォルト処理を示します。
char_var はスカラー文字変数で、数値入力フィールド内の
ブランクをすべて無視する場合、値 NULL が割り当てられます。
先行ブランク以外をすべてゼロと解釈して処理する場合、
値 ZERO が割り当てられます。
接続がない場合、あるいは接続が定様式入出力用ではない
場合、char_var には値 UNDEFINED が割り当てられます。
- DELIM= del
- リスト指示形式設定または名前リスト形式設定により書き込まれた
文字データを区切る書式を使用する場合に、その書式を指定します。
del はスカラー文字変数です。データの区切りに
アポストロフィを使用する場合は
値 APOSTROPHE、データの区切りに引用符を使用する場合は値 QUOTE、
データの区切りにアポストロフィも引用符も使用しない場合は値 NONE、
そして、ファイルの接続または定様式データへの接続がない場合は
値 UNDEFINED が割り当てられます。
- DIRECT= dir
- ファイルが直接アクセス用に接続されているかどうかを示します。
dir はスカラー文字変数で、
ファイルに直接アクセスを行える場合は値 YES、
ファイルに直接アクセスを行えない場合は値 NO、
どちらとも決定できない場合は値 UNKNOWN が割り当てられます。
- ERR= stmt_label
- エラーが発生した場合に制御が移される同じ有効範囲単位内の
実行可能ステートメントのステートメント・ラベルを指定するエラー指定子です。
ERR= 指定子をコーディングすると、エラー・メッセージは抑制されます。
- EXIST= ex
- ファイルまたは装置が存在しているかどうかを示します。
ex は、値 true または false が割り当てられた整変数です。
ファイルによる照会形式のステートメントの場合、FILE= 指定子によって
指定されたファイルが存在すれば値 true が割り当てられます。
そのファイルが存在しなければ値 false が割り当てられます。
装置による照会形式のステートメントの場合、UNIT= によって指定された
装置が存在していると値 true が割り当てられます。
装置が無効な場合は値 false が割り当てられます。
- FILE= char_expr
-
ファイル指定子です。
これは、ファイルによる照会の形式のステートメントを照会するファイルの名前を指定します。
char_expr はスカラー文字式で、この式の後続ブランクを除去した後の値は、
有効な Linux オペレーティング・システム・ファイル名です。
指定したファイルが存在している必要はなく、
また装置と関連している必要もありません。
+----------------------------------IBM 拡張----------------------------------+
- 注:
- Linux オペレーティング・システム・ファイル名が有効であるためには、
各ファイル名の長さが 255 文字以下で、絶対パス名の合計長が 1023 文字以下で
なければなりません (ただし、絶対パス名は指定しなくてもかまいません)。
+------------------------------End of IBM 拡張-------------------------------+
- FORM= char_var
- ファイルが定様式入出力用に接続されているのか、
不定様式入出力用に接続されているのかを示します。
char_var はデフォルトのスカラー文字変数で、
ファイルが定様式入出力用に接続されている場合は、値 FORMATTED が
割り当てられます。
ファイルが不定様式入出力用に接続されている場合は、
値 UNFORMATTED が割り当てられます。
接続がない場合、char_var には値 UNDEFINED が
割り当てられます。
- FORMATTED= fmt
- ファイルが定様式入出力用に接続できるかどうかを示します。fmt はスカラー文字変数で、ファイルを定様式入出力用に
接続できる場合には値 YES、
ファイルを定様式入出力用に
接続できない場合には値 NO、
どちらとも決定できない場合には UNKNOWN が割り当てられます。
- IOMSG= iomsg_variable
- 入出力操作によって戻されるメッセージを指定する入出力状況指定子です。
iomsg_variable は、デフォルトのスカラー文字変数です。これを、使用関連付けされた非ポインター保護変数にすることはできません。
この指定子を含む入出力ステートメントの実行が完了すると、iomsg_variable は以下のように定義されます。
- エラー、ファイルの終わり、またはレコードの終わりという条件が発生した場合、この変数には割り当てによる場合と同様に説明メッセージが割り当てられます。
- そのような条件が発生しなかった場合には、変数の値は変更されません。
- IOSTAT= ios
- 入出力操作の状況を示す入出力状況指定子です。
ios は整変数です。この指定子を含む入出力ステートメントの実行が完了すると、ios は
以下の値に定義されます。
- エラーが発生しなかった場合は 0
- エラーが発生した場合は正の値
IOSTAT= 指定子をコーディングすると、エラー・メッセージは抑制されます。
- NAME= fn
- ファイルの名前を示します。
fn はスカラー文字変数で、
装置が接続されているファイルの名前が割り当てられます。
- NAMED= nmd
- ファイルが名前を持っているかどうかを示します。
nmd は、ファイルに名前がある場合は、値 true が割り当てられた整変数です。
ファイルが名前を持っていなければ、値 false が割り当てられます。
- NEXTREC= nr
-
直接アクセス用に接続されたファイル上のどこで次のレコードの
読み取りまたは書き込みを実行できるかを示します。
nr は、n + 1 の値が割り当てられた整変数です。n は、
直接アクセス用に接続されたファイル上で最後に読み取られた、または書き込まれたレコードのレコード番号です。ファイルが接続されていても、接続後にレコードの読み取りまたは書き込みが
実行されていない場合、nr には値 1 が割り当てられます。
ファイルが直接アクセス用に接続されていない場合、
あるいは、以前にエラーがあったために、
ファイルの位置を決定できない場合、nr は未定義になります。
+----------------------------------IBM 拡張----------------------------------+
レコードの数は 2**31-1 よりも多くなることが
あるため、INTEGER(8) の NEXTREC= 指定子で
スカラー変数を指定させることも選択できます。 これを行うには、多くの方法がありますが、2 つの例を示します。
- nr を INTEGER(8) として明示的に宣言する。
- -qintsize=8 コンパイラー・オプションで
デフォルトの整数の kind を変更する。
+------------------------------End of IBM 拡張-------------------------------+
- NUMBER= num
- 現在ファイルに関連付けられている外部装置識別子を示します。
num は、ファイルに現在接続されている装置の外部装置識別子の値が割り当てられた整変数です。ファイルに接続されている装置がない場合、num には値 -1 が割り当てられます。
- OPENED= od
- ファイルまたは装置が接続されているかどうかを示します。
od は、値 true または false が割り当てられた整変数です。
ファイルによる照会形式の
ステートメントの場合 FILE= char_var 指定子
によって指定されたファイルが装置に接続されていれば、値 true が
割り当てられます。
ファイルが装置に接続されていなければ、値 false が割り当てられます。
装置による照会形式のステートメントの場合、
UNIT= によって指定された装置がファイルに接続されていれば、
値 true が割り当てられます。
装置がファイルに接続されていなければ、
値 false が割り当てられます。
事前接続ファイルの中でクローズされていないものについては、
最初の入出力操作の前後でともに値 true が割り当てられます。
- PAD= pd
- ファイルの接続が PAD=NO を指定しているかどうかを示します。
pd はスカラー文字変数です。ファイルの接続が PAD=NO を
指定している場合には値 NO、
その他の場合には値 YES が割り当てられます。
- POS=integer_var
-
integer_var は、ストリーム・アクセス用に接続された
ファイルのファイル位置の値を示す整変数です。integer_var には、ストリーム・アクセス用に接続されたファイルの現行位置の
直後にあるファイル記憶単位の番号が割り当てられます。
ファイルが終端点にある場合、integer_var には、
ファイル内で最も大きい番号のファイル記憶単位よりも 1 大きい値が割り当てられます。integer_var は、ファイルがストリーム・アクセス用に接続されていない場合、
または直前のエラー状態によりファイルの位置が決定できない場合は未定義になります。
- POSITION= pos
- ファイルの位置を示します。
pos はスカラー文字変数です。
OPEN ステートメントによって初期点に位置決めされるようにファイルが接続されている場合は
値 REWIND、ファイルの最後のレコードの前の位置、あるいは終端ポイントに位置決めされるように
ファイルが接続されている場合は値 APPEND、位置を変えないようにファイルが接続されている場合は
値 ASIS、接続がない場合、あるいはファイルが直接アクセス用に接続されていない場合は
UNDEFINED がそれぞれ割り当てられます。
オープンされた後、ファイルが初期点に再度位置決めされている
場合、pos には値 REWIND が割り当てられます。
オープンされた後、ファイルの最後のレコードの直前に再度位置決めされている場合
(あるいは終端ポイントにファイルの最後のレコードがない場合)、pos には値 APPEND が割り当てられます。
上記の 2 つが共に真で、ファイルが空のとき、
pos には APPEND が
割り当てられます。
ファイルがファイルの最後のレコードの後に位置決めされた
場合、pos には ASIS が割り当てられます。
- READ= rd
- ファイルが読み取れるかどうかを示します。
rd はスカラー文字変数です。
ファイルが読み取れる場合は YES、
ファイルが読み取れない場合は NO、
ファイルが読み取れるかどうか判断できない場合は
値 UNKNOWN が割り当てられます。
- READWRITE= rw
- ファイルに対して読み取りと書き込みの両方が実行できるかどうかを示します。
rw はスカラー文字変数です。
ファイルに対して読み取りと書き込みの両方が実行できる場合は
値 YES、ファイルが読み取りと書き込みの両方が実行できない場合は値 NO、
ファイルに対して読み取りと書き込みの両方が実行できるかどうか
判断できない場合は値 UNKNOWN が割り当てられます。
- RECL= rcl
-
直接アクセス用に接続されたファイルのレコード長の値、または、
順次アクセス用に接続されたファイルの最大レコード長の値を示します。
rcl は、レコード長の値が割り当てられた整変数です。
ファイルが定様式入出力用に接続されている場合、
長さは文字データを含むすべてのレコードの文字数です。
ファイルが不定様式入出力用に接続されている場合、
長さはデータのバイト数で計られます。
接続がない場合、rcl は未定義になります。
ファイルがストリーム・アクセス用に接続されている場合、rcl は未定義になります。
- SEQUENTIAL= seq
- ファイルが順次アクセス用に接続されているかどうかを示します。
seq はスカラー文字変数で、
ファイルに順次アクセスを行える場合は値 YES、
ファイルに順次アクセスを行えない場合は値 NO、
どちらとも決定できない場合は値 UNKNOWN が割り当てられます。
- SIZE= filesize
- filesize は、ファイル・サイズ (バイト単位) が割り当てられた整変数です。
- STREAM= strm
- ファイルが
ストリーム・アクセス用に接続されているかどうかを示すスカラー・デフォルト文字変数です。
strm には、ファイルにストリーム・アクセスを行える場合は値 YES、
ファイルにストリーム・アクセスを行えない場合は値 NO、
どちらとも決定できない場合は値 UNKNOWN が割り当てられます。+----------------------------------IBM 拡張----------------------------------+
- TRANSFER= char_variable
- 同期または非同期 (あるいはその両方) データ転送が、
ファイルの転送方法として許可されるかどうかを示す非同期 I/O 指定子です。
char_variable は、スカラー文字変数です。
char_variable に値 BOTH が割り当てられる場合、
同期および非同期データ転送の両方が許可されます。
char_variable に値 SYNCH が割り当てられる場合、
同期データ転送のみが許可されます。
char_variable に値 UNKNOWN が割り当てられる場合、
プロセッサーはこのファイルについて許可できる転送方法を判別できません。
+------------------------------End of IBM 拡張-------------------------------+
- UNFORMATTED= unf
- ファイルが不定様式入出力用に接続できるかどうかを示します。fmt はスカラー文字変数で、ファイルを不定様式入出力用に
接続できる場合には、値 YES、ファイルを不定様式入出力用に
接続できない場合には値 NO、
どちらとも決定できない場合には UNKNOWN が割り当てられます。
- WRITE= wrt
- ファイルに書き込みができるかどうかを示します。
wrt はスカラー文字変数です。ファイルに書き込める場合は
値 YES、ファイルが書き込めない場合は値 NO、
ファイルに書き込めるかどうか
判断できない場合は値 UNKNOWN が割り当てられます。
規則
INQUIRE ステートメントを実行できるのは、ファイルが装置と関連する前、関連している間、または
関連した後です。
INQUIRE ステートメントの結果として割り当てられる値は、
すべてステートメントが実行される時点での現在値です。
+----------------------------------IBM 拡張----------------------------------+
装置またはファイルが接続されている
場合、ACCESS=、SEQUENTIAL=、STREAM=、DIRECT=、ACTION=、READ=、WRITE=、READWRITE=、FORM=、FORMATTED=、UNFORMATTED=、BLANK=、DELIM=、PAD=、RECL=、POSITION=、NEXTREC=、NUMBER=、NAME=、
および NAMED= 指定子に戻される値は接続の特性であり、ファイルの特性ではありません。
EXIST= と OPENED= 指定子は、
この状態では true を戻すことに注意してください。
装置またはファイルが接続されていない場合、あるいは存在しない場合、
ACCESS=、ACTION=、FORM=、BLANK=、DELIM=、POSITION= 指定子は
値 UNDEFINED を戻し、DIRECT=、SEQUENTIAL=、STREAM=、FORMATTED=、UNFORMATTED=、READ=、WRITE= および READWRITE= 指定子は
値 UNKNOWN を戻し、RECL= および NEXTREC= 指定子変数は定義されず、PAD= 指定子は
値 YES を戻し、OPENED 指定子は値 false を戻します。
SIZE= 指定子によって戻される値は -1 です。
装置またはファイルが存在しない場合、
EXIST= と NAMED= 指定子は
値 false を戻し、NUMBER= 指定子は値 -1 を戻し、
NAME= 指定子変数は定義されません。
装置またはファイルが存在していても接続していない
場合、EXIST= 指定子は値 true を戻します。
装置による照会形式のステートメントの場合、
NAMED= 指定子は値 false を戻し、
NUMBER= 指定子は
装置番号を戻し、NAME= 指定子変数は定義されません。
ファイルによる照会形式のステートメントの場合、NAMED= 指定子は
値 true を戻し、NUMBER= 指定子は値 -1 を
戻し、NAME= 指定子はファイル名を戻します。
+------------------------------End of IBM 拡張-------------------------------+
同一の INQUIRE ステートメント内の複数の指定子に同じ変数名を
指定することはできません。また、同じ変数名を指定子リスト上の他の変数と
関連させることもできません。
例
SUBROUTINE SUB(N)
CHARACTER(N) A(5)
INQUIRE (IOLENGTH=IOL) A(1) ! Inquire by output list
OPEN (7,RECL=IOL)
·
·
·
END SUBROUTINE
関連情報
