XtFindFile(3) パスのリストでの文字置き換えを使ってファイルを探す

書式

String XtFindFile(path, substitutions, num_substitutions, predicate)

      String path;

      Substitution substitutions;

      Cardinal num_substitutions;

      XtFilePredicate predicate;

引き数

path
ファイル名のパスを指定。これは置き換え文字を含む。
substitutions
パスを作るための置き換え文字のリストを指定。
num_substitutions
渡す置き換え文字の数を指定。
predicate
ファイル名になるかもしれない文字列を判定するために呼ぶ手続き、または NULL を指定。

説明

引き数 path は、ファイル名になるかもしれない文字列を連ねた文字列を 指定する。この文字列はコロンで区切られる。それぞれの名前の中では、パー セント文字とその後に続く文字で文字列の置き換えを指定する。文字シーケン ス ``%:'' は区切り文字ではない文字列中のコロンを示す。このシーケンスは 単独のコロンに置き換えられる。文字シーケンス``%%''は、置き換えを表さな い1つのパーセント文字を示す。このシーケンスは単独のパーセント文字に置 き換えられる。パーセント文字の後に他の文字が続いた場合は、 XtFindFile は、指定された substitutions を検索して、match フィールド 内のその文字を見つける。その文字が見つかった場合には、パーセント文字お よびマッチした文字は、対応する substitution フィールド内の文字列 と置き換えられる。substitution フィールドに NULL を指定すること は、空文字列へのポインタを指定することと等価である。OS がパス中に入っ ている複数の名前区切り文字(例えば POSIX では ``/'')を単独の区切り文字 と同じように解釈しない場合、 XtFindFile は、文字列の置き換えの後に複数の区切り文字を1つの区切り文字にまとめる。 文字列中の区切り文字をまとめることを除き、 XtFindFile は文字列置き換えの内容を解釈しないため、この文字列置き換えは追加の名前 区切り文字などを含めた OS 依存の文字を含むかもしれない。 predicate 手続きが True を返す文字列が見つかるまで、得られたそれぞれの文字列はこの手続きに渡さ れる。文字列が見つかった場合は、これが XtFindFile の返り値となる。 predicate 手続きが True を返す文字列が見つからなかった場合は、 XtFindFile は NULL を返す。

predicate パラメータが NULL の場合、ファイルが存在し、読むことが でき、ディレクトリでないことをチェックする内部手続きが使われる。

返された文字列が不要になったとき、 XtFree を使ってこれを解放するのは呼び出し側の責任である。