OSDN Git Service

Update README
[linuxjm/LDP_man-pages.git] / release / man3 / ftw.3
index e697f4a..db50dd5 100644 (file)
@@ -44,7 +44,7 @@
 .\" Updated & Modified 2005-11-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\" Updated 2006-07-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.36
 .\"
-.TH FTW 3 2014\-01\-11 Linux "Linux Programmer's Manual"
+.TH FTW 3 2014\-12\-31 Linux "Linux Programmer's Manual"
 .SH 名前
 ftw, nftw \- ファイルツリーを歩きまわる
 .SH 書式
@@ -66,20 +66,21 @@ ftw, nftw \- ファイルツリーを歩きまわる
 \fB        int \fP\fInopenfd\fP\fB, int \fP\fIflags\fP\fB);\fP
 .fi
 .SH 説明
-\fBftw\fP()  は、 \fIdirpath\fP で指定されたディレクトリ以下のディレクトリツリー全体を歩きまわり、 ツリー中でエントリが見付かるごとに、
-\fIfn\fP()  を呼び出す。 デフォルトでは、ディレクトリそのものが、そのディレクトリにあるファイルや サブディレクトリよりも先に処理される
-(行きがけ順探索; preorder traversal)。
+\fBftw\fP()  は、 \fIdirpath\fP で指定されたディレクトリ以下のディレクトリツリー全体を歩きまわり、
+ツリー中でエントリーが見付かるごとに、 \fIfn\fP()  を呼び出す。 デフォルトでは、ディレクトリそのものが、そのディレクトリにあるファイルや
+サブディレクトリよりも先に処理される (行きがけ順探索; preorder traversal)。
 
-呼び出し元プロセスが利用可能なファイルディスクリプタを使い切って しまわないようにするため、 \fBftw\fP()
\91¼ã\81³å\87ºã\81\97å\85\83ã\83\97ã\83­ã\82»ã\82¹ã\81\8cå\88©ç\94¨å\8f¯è\83½ã\81ªã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\82\92使ã\81\84å\88\87ã\81£ã\81¦ ã\81\97ã\81¾ã\82\8fã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81 \fBftw\fP()
 が同時にオープンするディレクトリの最大数を \fInopenfd\fP で指定することができる。 探索の深さがこの値を越えると、
 一つのディレクトリを閉じてから他のディレクトリをオープンし直すこと になるので、 \fBftw\fP()  の動作は遅くなる。 \fBftw\fP()
-は、ディレクトリツリーの階層 1 レベルにつき、 最大でも一つのファイルディスクリプタしか使用しない。
\81¯ã\80\81ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83\84ã\83ªã\83¼ã\81®é\9a\8e層 1 ã\83¬ã\83\99ã\83«ã\81«ã\81¤ã\81\8dã\80\81 æ\9c\80大ã\81§ã\82\82ä¸\80ã\81¤ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81\97ã\81\8b使ç\94¨ã\81\97ã\81ªã\81\84ã\80\82
 
-ディレクトリツリーで見つかったエントリ毎に、 \fBftw\fP()  は \fIfpath\fP, \fIsb\fP, \fItypeflag\fP の 3つを引き数として
-\fIfn\fP()  を呼び出す。 \fIfpath\fP はエントリのパス名である。 \fIdirpath\fP が相対パス名で指定された場合には、 \fIfpath\fP
-は \fBftw\fP()  が呼び出された時点の呼び出し元プロセスのカレントワーキングディレクトリ からの相対パス名となる。 \fIdirpath\fP
-が絶対パス名で指定された場合には、 \fIfpath\fP は絶対パス名となる。 \fIsb\fP は \fIfpath\fP に対する \fBstat\fP(2)
-の呼び出しで返される \fIstat\fP 構造体へのポインタである。 \fItypeflag\fP は整数で、以下の値のいずれか一つである:
+ディレクトリツリーで見つかったエントリー毎に、 \fBftw\fP()  は \fIfpath\fP, \fIsb\fP, \fItypeflag\fP の 3つを引き数として
+\fIfn\fP()  を呼び出す。 \fIfpath\fP はエントリーのパス名である。 \fIdirpath\fP が相対パス名で指定された場合には、
+\fIfpath\fP は \fBftw\fP()  が呼び出された時点の呼び出し元プロセスのカレントワーキングディレクトリ からの相対パス名となる。
+\fIdirpath\fP が絶対パス名で指定された場合には、 \fIfpath\fP は絶対パス名となる。 \fIsb\fP は \fIfpath\fP に対する
+\fBstat\fP(2)  の呼び出しで返される \fIstat\fP 構造体へのポインターである。 \fItypeflag\fP
+は整数で、以下の値のいずれか一つである:
 .TP 
 \fBFTW_F\fP
 \fIfpath\fP が通常のファイルである
@@ -104,7 +105,7 @@ ftw, nftw \- ファイルツリーを歩きまわる
 .PP
 \fBftw\fP()  は動的なデータ構造を用いるので、ツリー探索を安全に中断する唯一の方法は 0 以外の値を \fIfn\fP()
 の返り値とすることである。割り込みを扱うには、 例えば発生した割り込みをマークしておいて、 0 以外の値を返すようにする
\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\82\8aã\83¡ã\83¢ã\83ªã\83ªã\83¼ã\82¯ã\82\92èµ·ã\81\93ã\81\95ã\81\9aã\81«æ\8e¢ç´¢ã\82\92çµ\82äº\86ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©で \fIfn\fP()
\82·ã\82°ã\83\8aã\83«ã\81«ã\82\88ã\82\8aã\83¡ã\83¢ã\83ªã\83¼ã\83ªã\83¼ã\82¯ã\82\92èµ·ã\81\93ã\81\95ã\81\9aã\81«æ\8e¢ç´¢ã\82\92çµ\82äº\86ã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81«ã\81¯ã\80\81 ã\82·ã\82°ã\83\8aã\83«ã\83\8fã\83³ã\83\89ã\83©ã\83¼で \fIfn\fP()
 がチェックするグローバルなフラグをセットするようにすればよい。 プログラムを終了させる場合以外は、 \fBlongjmp\fP(3)  を使用しないこと。
 .SS nftw()
 関数 \fBnftw\fP()  は \fBftw\fP()  と同じだが、引き数 \fIflags\fP が追加される点と、 \fIfn\fP()  の引き数に
@@ -124,11 +125,12 @@ ftw, nftw \- ファイルツリーを歩きまわる
 .\" If \fBFTW_DEPTH\fP
 .\" is set, the entry's parent directory is processed next (with
 .\" \fIflag\fP set to \fBFTW_DP\fP).
-\fIfn\fP()  がこの値を返した場合、処理中のエントリの兄弟 (同じ階層のエントリ)  の処理はスキップされ、親ディレクトリで続きの処理が行われる。
+\fIfn\fP()  がこの値を返した場合、処理中のエントリーの兄弟 (同じ階層のエントリー)
+の処理はスキップされ、親ディレクトリで続きの処理が行われる。
 .TP 
 \fBFTW_SKIP_SUBTREE\fP
-\fIfn\fP()  が呼び出されたエントリがディレクトリ (\fItypeflag\fP が \fBFTW_D\fP)  の場合に、この値を返すと \fIfn\fP()
\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81®å\87¦ç\90\86ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\80\82 \fBnftw\fP()  ã\81¯å\87¦ç\90\86中ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®å\85\84å¼\9f (å\90\8cã\81\98é\9a\8e層ã\81®ã\82¨ã\83³ã\83\88ã\83ª)
+\fIfn\fP()  ã\81\8cå\91¼ã\81³å\87ºã\81\95ã\82\8cã\81\9fã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81\8cã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ª (\fItypeflag\fP ã\81\8c \fBFTW_D\fP)  ã\81®å ´å\90\88ã\81«ã\80\81ã\81\93ã\81®å\80¤ã\82\92è¿\94ã\81\99ã\81¨ \fIfn\fP()
\81®å¼\95ã\81\8dæ\95°ã\81¨ã\81\97ã\81¦æ¸¡ã\81\95ã\82\8cã\81\9fã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼ã\81®å\87¦ç\90\86ã\81\8cè¡\8cã\82\8fã\82\8cã\81ªã\81\8fã\81ªã\82\8bã\80\82 \fBnftw\fP()  ã\81¯å\87¦ç\90\86中ã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\81®å\85\84å¼\9f (å\90\8cã\81\98é\9a\8e層ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\83¼)
 から処理を続ける。
 .TP 
 \fBFTW_STOP\fP
@@ -137,17 +139,18 @@ ftw, nftw \- ファイルツリーを歩きまわる
 他の返り値は将来新しい動作に対応付けられる可能性がある。 \fIfn\fP()  は上記のリストにある値以外を返さないようにすべきである。
 
 \fI<ftw.h>\fP で \fBFTW_ACTIONRETVAL\fP の定義が有効にするためには、
-(「どの」ヘッダファイルをインクルードするよりも前に)  機能検査マクロ \fB_GNU_SOURCE\fP を定義しなければならない。
+(ã\80\8cã\81©ã\81®ã\80\8dã\83\98ã\83\83ã\83\80ã\83¼ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\82¤ã\83³ã\82¯ã\83«ã\83¼ã\83\89ã\81\99ã\82\8bã\82\88ã\82\8aã\82\82å\89\8dã\81«)  æ©\9fè\83½æ¤\9cæ\9f»ã\83\9eã\82¯ã\83­ \fB_GNU_SOURCE\fP ã\82\92å®\9a義ã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\80\82
 .RE
 .TP 
 \fBFTW_CHDIR\fP
 セットされると、ディレクトリの内容を処理する前に そのディレクトリに \fBchdir\fP(2)  する。このフラグは、 \fIfpath\fP
 が属すディレクトリで何らかの動作を実行する必要がある場合に 便利である。
+(このフラグを指定しても \fIfn\fP の \fIfpath\fP 引き数で渡されるパス名には影響しない。)
 .TP 
 \fBFTW_DEPTH\fP
 セットされると、帰りがけ順探索 (post\-order traversal) を行う。 つまり、ディレクトリそのものを引き数とした \fIfn\fP()
 呼出しは、そのディレクトリに含まれるファイルとサブディレクトリに 対する処理の「後で」行われる
-(デフォルトでは、ディレクトリ自身の処理はディレクトリ内のエントリ より「前に」行なわれる)。
+(デフォルトでは、ディレクトリ自身の処理はディレクトリ内のエントリ より「前に」行なわれる)。
 .TP 
 \fBFTW_MOUNT\fP
 セットされると、同じファイルシステムの中だけを探索対象とする (つまり、マウントポイントをまたぐことはない)。
@@ -159,7 +162,7 @@ ftw, nftw \- ファイルツリーを歩きまわる
 \fBFTW_PHYS\fP がセットされずに \fBFTW_DEPTH\fP がセットされると、自分自身に対するシンボリックリンクを配下に持つ
 ディレクトリに対して \fIfn\fP()  が呼び出されることは決してない。
 .LP
-ディレクトリツリーのエントリ毎に、 \fBnftw\fP()  は 4つの引き数で \fIfn\fP()  を呼び出す。 \fIfpath\fP と \fIsb\fP は
+ディレクトリツリーのエントリ毎に、 \fBnftw\fP()  は 4つの引き数で \fIfn\fP()  を呼び出す。 \fIfpath\fP と \fIsb\fP は
 \fBftw\fP()  と同じである。 \fItypeflag\fP には、 \fBftw\fP()  で取り得る値のいずれか、または以下の値のいずれかが渡される:
 .TP 
 \fBFTW_DP\fP
@@ -203,6 +206,8 @@ struct FTW {
 
 \fBnftw\fP()  が \fBFTW_ACTIONRETVAL\fP フラグ付きで呼ばれた場合、ツリーの探索を終了させるために \fIfn\fP()
 が使用できる、非 0 の値は \fBFTW_STOP\fP だけであり、 この値は \fBnftw\fP()  の返り値として返される。
+.SH バージョン
+\fBnftw\fP() は バージョン 2.1 以降の glibc で利用できる。
 .SH 準拠
 POSIX.1\-2001, SVr4, SUSv1.  POSIX.1\-2008 は \fBftw\fP()  を廃止予定としている。
 .SH 注意
@@ -214,10 +219,8 @@ POSIX.1\-2001 の注記によると、 \fIfn\fP がカレントワーキング
 を使うシステム、また \fBftw\fP()  が全てのシンボリックリンクに対して \fBFTW_SL\fP を使うシステムもある。
 予測可能な動作をさせるためには、 \fBnftw\fP()  を使うこと。
 .LP
-Linux では、 libc4, libc5, glibc 2.0.6 は 「stat できるがディレクトリではないオブジェクト」 (ファイル,
-シンボリックリンク, fifo 等)  に対してはすべて \fBFTW_F\fP を使う。
-
-\fBnftw\fP()  関数は glibc 2.1 以降で利用できる。
+「stat できるがディレクトリではないオブジェクト」 (ファイル, シンボリックリンク, fifo 等)  に対しては、すべて \fBFTW_F\fP
+が返される。
 
 \fBFTW_ACTIONRETVAL\fP は glibc 固有である。
 .SH 例
@@ -268,6 +271,6 @@ main(int argc, char *argv[])
 .SH 関連項目
 \fBstat\fP(2), \fBfts\fP(3), \fBreaddir\fP(3)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.68 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.79 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。