2.4.5 cfsrch

1.
機能
パス名の先頭部分と末尾部分のリストの組合せから, 存在するファイル名を探す.
2.
呼び出し方法
cfname = NumRu::DCL.cfsrch(cplist,cflist,nf)
3.
パラメーターの説明
cpl (C(NP)*80) パス名の先頭部分のリスト. 長さ80の文字型配列.
np (I) 配列 cplの長さ.
cfl (C(NF)*80) パス名の末尾部分のリスト. 長さ80の文字型配列.
nf (I) 配列 cflの長さ.
cfn (C*(*)) 最初に見つかったファイル名を返す 文字型変数.
4.
備考
(a)
たとえばファイル名 /usr/local/bin/dclfrt について, 先頭部分とは /usr/local/bin/ をさす; 末尾部分とは dclfrt をさす.
(b)
このサブルーチンは, CPL(1) から CPL(NP) の 先頭部分について, CFL(1) から CFL(NF) の末尾部分 との組合せからなるパス名をもつ ファイルが存在するかどうかを調べて, 最初に見つかったファイル名を 返す. そのようなファイル名が存在しなければ空白からなる 文字列を返す.
(c)
パス名の先頭部分として空白からなる文字列を与えると, カレントディレクトリについて, パス名の末尾部分からなる ファイルを検索する.
(d)
このルーチンはシステムに依存する. つまり, CFSRCH は UNIX のようなツリー構造を持ったファイルシステムを念頭において 作成されており, メインフレーム系のようなファイルシステムに おいてはファイル名検索のルールを別途定義してやる必要がある. しかし, 現在用意されているルーチンでも, 内部的には単に2種類の 文字型リストを組合せてファイルが存在するかどうかを調べている だけなので, 「先頭部分」, 「末尾部分」という定義にこだわらずに, ファイル名を構成する要素としてこれらを与えてやればそのまま 利用することができる. ただし, 「パス名の先頭部分として 空白を指定するとカレントディレクトリを検索する」という 仕様の制約から, 空白を指定しないようにするか, 空白が指定されたときの動作を別途定 義する(たとえば, 何もしない)必要がある.