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