Provided by: manpages-ja-dev_0.5.0.0.20060115-1_all bug

FTS_OPEN

     fts_open() 関数は、文字列ポインタの配列へのポインタを引た瑤房茲襦
     この文字列ポインタは、論理ファイル階層をつくる 1
     つ以上のパスの名前になる。 配列は、 NULL
     ポインタで終了しなければならない。

     多くのオプションがあり、少なくとも 1 つ (FTS_LOGICAL または FTS_PHYSICAL)
     が指定されなければならない。 次のオプションが or をとって選択される。

     FTS_COMFOLLOW
                   このオプションは、 FTS_LOGICAL の指定にかかわらず、
                   ルートパスに指定されたシンボリックリンクをすぐにたどらせる。

     FTS_LOGICAL   このオプションは、 fts
                   ルーチンにシンボリックリンクそのものではなく、
                   シンボリックリンクが指しているファイルの FTSENT
                   構造体を返させる。 このオプションが設定された場合、 FTSENT
                   構造体がアプリケーションに返されるような
                   シンボリックリンクのみが、存在しないファイルを参照している。
                   FTS_LOGICAL または FTS_PHYSICAL のどちらかを、 fts_open()
                   関数に与えなければ _

     FTS_NOCHDIR   パフォーマンスの最適化のため、 fts
                   関数はファイル階層をたどるとぅ妊レクトリを変える。
                   これには、階層をたどっている間は
                   アプリケーションがある特定のディレクトリにいるということに
                   依存でい覆ぁ△箸いι作用がある。 FTS_NOCHDIR
                   オプションで最適化を無効にすると、 fts
                   関数は現在のディレクトリを変更しない。 FTS_NOCHDIR
                   が指定され、かつ fts_open() の引-
                   数として絶対パス名が与えられたとぐ奮亜▲▲廛螢院璽轡腑鵑蓮
                   自らカレントディレクトリを変更したり、
                   ファイルにアクセスしたりすべ-
                   ではない、という点に注意すること。

     FTS_NOSTAT    デフォルトでは、返された FTSENT
                   構造体は、たどられた各ファイルについてのファイル特徴情報
                   (statp フィールド) を参照する。 このオプションは、 fts
                   関数が fts_info フィールドを FTS_NSOK に設定し statp
                   の内容を定義されないままにすることを許すことにより、
                   パフォーマンスの最適化に必要なものを緩和する。

     FTS_PHYSICAL  このオプションは、 fts
                   ルーチンにシンボリックリンクが指しているファイルではなく、
                   シンボリックリンク自身の FTSENT 構造体を返させる。
                   このオプションが設定されると、階層中のすべてのシンボリックリンクの
                   FTSENT 構造体がアプリケーションに返される。 FTS_LOGICAL
                   または FTS_PHYSICAL のどちらかを fts_open()
                   関数に与えなければ _

     FTS_SEEDOT    デフォルトでは、 fts_open() のパス引-
                   数として指定されない限り、ファイル階層中にある '.' または
                   '..' という名前のファイルは無視される。 このオプションは、
                   fts ルーチンにこれらのファイルの FTSENT 構造体を返させる。

     FTS_XDEV      このオプションは、 fts
                   が下り始めのファイルとは異なるデバイス番号を持っている
                   ディレクトリに下りるのを阻止する。

     引た compar()
     は、階層をたどる順番を決めるのに使われるユーザー定義関数を指定する。
     この関数は、引た瑤箸靴 FTSENT 構造体のポインタのポインタを 2 つとり、 1
     番目の引た瑤濃仮箸気譴討い襯侫.ぅ襪 2 番目の引-
     数で参照されているファイルより
     前にある場合は負の値・同じ場合はゼロ・後にある場合は正の値を
     返さなければならない。 FTSENT 構造体の fts_accpath, fts_path, fts_pathlen
     フィールドは、この比較に _fts_info フィールドが
     FTS_NS または FTS_NSOK に設定される場合、 fts_statp
     フィールドはこれらのどちらでもない。 compar() 引た瑤 NULL
     の場合、ディレクトリをたどる順番は、ルートパスについては path_argv
     のなかでリストされた順番で、
     その他のファイルについてはディレクトリ内でリストされた順番となる。

FTS_READ

     fts_read() 関数は、階層中のファイルを欺劼垢 FTSENT
     構造体へのポインタを返す。 (読み込み可能で、循環していない)
     ディレクトリは、 1 回は pre-order で、もう 1 回は post-order
     で、少なくとも 2 回たどられる。 他のファイルは、少なくとも 1
     回たどられる。 (ディレクトリ間のハードリンクによって
     循環やシンボリックリンクへのシンボリックリンクが起こらない場合、
     ファイルは 2 回以上、ディレクトリは 3 回以上たどられる。)

     階層中のすべてのメンバーが返された場合、 fts_read() は NULL
     を返し、外部変数 errno を 0 にする。
     階層中のファイルに関係しないエラーが起こった場合、 fts_read() は NULL
     を返し、 errno をエラーに対応した値にする。
     階層中のファイルに関係したエラーが起こった場合、 FTSENT
     構造体へのポインタが返され、 errno
     は設定される場合と設定されない場合がある (fts_info を参照すること)。

     fts_read() によって返される FTSENT
     構造体は、同じファイル階層ストリームへの fts_close() の呼出しの後に上書-
     される。 また、同じファイル階層ストリームへの fts_read()
     の呼出しの後でも、構造体がディレクトリを表現していない限り上書い気譴襦
     この場合、 fts_read() 関数によって post-order で FTSENT
     構造体が返された後、 fts_read() の呼出しがあるまで、
     これらの構造体は上書い気譴覆ぁ

FTS_CHILDREN

     fts_children() 関数は、 FTSENT 構造体へのポインタを返す。 この構造体は、(
     fts_read() で最も新しく返された FTSENT
     構造体で表現されるディレクトリにあるファイルの) NULL
     で終了するリンクリストの最初のエントリを欺劼垢襦 このリストは、 FTSENT
     構造体の fts_link フィールドを使ってリンクされ、
     ユーザー指定の比較関数がある場合は、それで順序づけられる。 fts_children()
     の呼出しを繰り返すことで、 このリンクリストは再生成される。

     特別な場合として、 fts_read() がファイル階層について呼ばれていない場合、
     fts_children() は fts_open() に指定された論理ディレクトリ (つまり、
     fts_open() に指定された引た) の中にあるファイルへのポインタを返す。
     それ以外の場合で、 fts_read() によって最も新しく返された FTSENT 構造体が
     pre-order でたどられたディレクトリでない場合や
     何も含んでいないディレクトリの場合は、 fts_children() は NULL を返し、
     errno を 0 にする。 エラーが起こった場合、 fts_children() は NULL
     を返し、 errno をエラーに対応した値にする。

     fts_children() によって返される FTSENT
     構造体は、同じファイル階層ストリームへの fts_children(), fts_close(),
     fts_read() の呼出しの後に上書い気譴訃豺腓ある。

     option は、次の値に設定でい襦

     FTS_NAMEONLY  ファイル名のみが必要とされている。
                   返された構造体のリンクリストの fts_name, fts_namelen
                   フィールド以外の すべてのフィールドの内容は定義されない。

FTS_SET

     関数 fts_set() は、ユーザーアプリケーションが ストリーム ftsp のファイル
     f について更なる処理を決定すること許す。 fts_set() 関数は、成功した場合は
     0 を、エラーが起こった場合は -1 を返す。 option は、次の値のいずれか 1
     つに設定されなければならない。

     FTS_AGAIN     ファイルを再びたどる。すべてのファイルタイプが再びたどられる。
                   次の fts_read()
                   の呼出しにより、参照されているファイルが返される。 構造体の
                   fts_stat, fts_info
                   フィールドはこの時に初期化されるが、他のフィールドは変更されない。
                   このオプションは、 fts_read()
                   によって最も新しく返されたファイルについてのみ意味を持つ。
                   通常は、post-order でディレクトリをたどる場合に使用し、
                   その下の階層と同様に、 ディレクトリを (pre-order と post-
                   order の両方で) 再びたどらせる。

     FTS_FOLLOW
                   参照されてるファイルは、シンボリックリンクでなければならない。
                   参照されているファイルが fts_read()
                   によって最も新しく返されたものである場合、次の fts_read()
                   の呼出しでは、シンボリックリンクそのものではなく、
                   シンボリックリンクが指している先を反映するように fts_info,
                   fts_statp を再び初期化したファイルが返される。 ファイルが
                   fts_children() によって最も新しく返されたものの 1
                   つである場合、 fts_read() によって返されたとぁ構造体の
                   fts_info, fts_statp
                   フィールドは、シンボリックリンクそのものではなく、
                   シンボリックリンクが指している先を反映する。
                   どちらの場合でも、シンボリックリンクが指している先がないと-
                   は、 返された構造体のフィールドは変更されず、 fts_info
                   フィールドが FTS_SLNONE に設定される。

                   リンク先がディレクトリの場合、 ファイルが pre-order
                   で返された後、下の階層のすべてファイルが返され、 その後で
                   post-order で返される。

     FTS_SKIP      このファイルの下の階層はたどられない。 このファイルは、
                   fts_children() または fts_read()
                   のどちらかによって最も新しく返されたものの 1 つである。

FTS_CLOSE

     fts_close() 関数は、ファイル階層ストリーム ftsp
     を閉じる。そして、現在のディレクトリを ftsp を開くために fts_open()
     が呼ばれたディレクトリに復元する。 fts_close() 関数は、成功した場合は 0
     を、エラーが起こった場合は -1 を返す。

ー
     関数 fts_open() が失敗した場合、 errno は、ライブラリ関数 open(2) と
     malloc(3) に対して指定されるエラーに設定される。

     関数 fts_close() が失敗した場合、 errno は、ライブラリ関数 chdir(2) と
     close(2) に対して指定されるエラーに設定される。

     関数 fts_read() と fts_children() が失敗した場合、 errno
     は、ライブラリ関数 chdir(2), malloc(3), opendir(3), readdir(3), stat(2)
     に対して指定されるエラーに設定される。

     更に、 fts_children(), fts_open(), fts_set() が失敗した場合、 errno
     が次の値にされる。

     [EINVAL]           オプションが無効であった。

目
     find(1), chdir(2), stat(2), qsort(3)

拠
     BSD 4.4.  fts ユーティリティは、祥茲 IEEE Std 1003.1-1988 (``POSIX.1'')
     リビジョンに含まれると期待されている。


     これらの関数は、Linux では glibc2 から使用可能である。