本ルーチンには2つの用法がある。ファイル指定においては環境変数にいくつかのパスのリストが入っており、この環境変数を拡張するのに本ルーチンを使用できる。また、特定ファイル指定を使用するOPEN INPUTがファイルをライブラリ( .LBRファイル)内に見つけるか、あるいは別のディスクファイルとして見つけるかを、本ルーチンで決定する。
call "CBL_LOCATE_FILE" using user-file-spec user-mode actual-file-spec exist-flag path-flag returning status-code
呼び出しプロトタイプ使用時 ( 説明の読み方) | PIC (32bitシステム) | ||||
---|---|---|---|---|---|
user-file-spec | pic x(n). | pic x(n). | |||
user-mode | cblt-x1-compx | pic x comp-x. | |||
actual-file-spec | Group item defined as: | Group item defined as: | |||
buffer-len | cblt-x2-compx | pic x(2) comp-x. | |||
buffer | pic x(n). | pic x(n). | |||
exist-flag | cblt-x1-compx | pic x comp-x. | |||
path-flag | cblt-x1-compx | pic x comp-x. | |||
status-code | 説明の読み方 参照 |
user-file-spec | ファイル名指定が入る。埋込み環境変数またはライブラリ名を含むことができる。 | ||||||
user-mode | user-file-specをどうするかを指定する。
|
||||||
path-flag | user-modeが 2の場合、データ項目には、前のuser-modeが1または2の呼出しから本項目に入れて戻された値が入っていること。 | ||||||
buffer-len | バッファのサイズ |
buffer | user-modeの項で説明したように、解決されたファイル指定を格納するバッファ。解決されたファイル指定がbuffer-lenで指定されたサイズより大きい場合、バッファの内容は変更されずにstatus-codeが内容に応じて設定される。 | ||||||||||||
exist-flag | user-modeが0の場合、出口上のデータ項目は、user-file-specに指定されたファイルが存在するか否かを示す。
user-modeが0でない場合、データ項目は常に出口上で0となっている。 |
||||||||||||
path-flag | user-file-specが次のようなactual-file-specに展開された埋込み環境変数を格納したか否かを示す。
|
||||||||||||
status-code | 戻り状態:
|
CBL_LOCATE_FILEはストライプ対応ではない。本ルーチンをストライプファイルに使用する場合、ルーチンは最初のストライプにのみ配置する。本ルーチンをストライプごとに使用し、ストライプ名によってストライプを参照する。ストライプファイルの使用に関する詳細は、ファイルハンドリングのファイルハンドラ設定の章の ファイルストライプ の項目を参照のこと。
user-file-specは、次の形式をとる。
標準ファイル名: | path\filename.ext |
埋込み環境変数: | $envname\filename.ext |
埋込みライブラリ名: | path\lbr-name.lbr\filename.ext |