1 .\" Copyright (c) 1993 Michael Haardt (u31b3hs@pool.informatik.rwth-aachen.de)
2 .\" and copyright (c) 1999 Andries Brouwer (aeb@cwi.nl)
3 .\" and copyright (c) 2006 Justin Pryzby <justinpryzby@users.sf.net>
4 .\" and copyright (c) 2006 Michael Kerrisk <mtk.manpages@gmail.com>
6 .\" This is free documentation; you can redistribute it and/or
7 .\" modify it under the terms of the GNU General Public License as
8 .\" published by the Free Software Foundation; either version 2 of
9 .\" the License, or (at your option) any later version.
11 .\" The GNU General Public License's references to "object code"
12 .\" and "executables" are to be interpreted as the output of any
13 .\" document formatting or typesetting system, including
14 .\" intermediate and printed output.
16 .\" This manual is distributed in the hope that it will be useful,
17 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
18 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 .\" GNU General Public License for more details.
21 .\" You should have received a copy of the GNU General Public
22 .\" License along with this manual; if not, write to the Free
23 .\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
26 .\" Modified Sun Jul 25 11:02:22 1993 by Rik Faith (faith@cs.unc.edu)
27 .\" 2006-05-24, Justin Pryzby <justinpryzby@users.sf.net>
28 .\" document FTW_ACTIONRETVAL; include .SH "RETURN VALUE";
29 .\" 2006-05-24, Justin Pryzby <justinpryzby@users.sf.net> and
30 .\" Michael Kerrisk <mtk.manpages@gmail.com>
31 .\" reorganized and rewrote much of the page
32 .\" 2006-05-24, Michael Kerrisk <mtk.manpages@gmail.com>
33 .\" Added an example program.
35 .\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved.
36 .\" Translated 1998-04-28, NAKANO Takeo <nakano@apm.seikei.ac.jp>
37 .\" Updated & Modified 1999-09-14, NAKANO Takeo <nakano@apm.seikei.ac.jp>
38 .\" Updated & Modified 2005-11-04, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
39 .\" Updated 2006-07-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.36
41 .\" WORD: file descriptor ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
43 .TH FTW 3 2010-09-20 "Linux" "Linux Programmer's Manual"
46 .\"O ftw, nftw \- file tree walk
47 ftw, nftw \- ¥Õ¥¡¥¤¥ë¥Ä¥ê¡¼¤òÊ⤤ޤï¤ë
53 .BI "int ftw(const char *" dirpath ,
54 .BI " int (*" fn ") (const char *" fpath ", const struct stat *" sb ,
55 .BI " int " typeflag ),
56 .BI " int " nopenfd );
58 .\"O+ .BR "#define _XOPEN_SOURCE 500" " /* See feature_test_macros(7) */"
59 .BR "#define _XOPEN_SOURCE 500" " /* feature_test_macros(7) »²¾È */"
60 .B #define _XOPEN_SOURCE 500
63 .BI "int nftw(const char *" dirpath ,
64 .BI " int (*" fn ") (const char *" fpath ", const struct stat *" sb ,
65 .BI " int " typeflag ", struct FTW *" ftwbuf ),
66 .BI " int " nopenfd ", int " flags );
71 .\"O walks through the directory tree that is
72 .\"O located under the directory \fIdirpath\fP,
73 .\"O and calls \fIfn\fP() once for each entry in the tree.
74 .\"O By default, directories are handled before the files and
75 .\"O subdirectories they contain (preorder traversal).
79 ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼Á´ÂΤòÊ⤤ޤï¤ê¡¢
80 ¥Ä¥ê¡¼Ãæ¤Ç¥¨¥ó¥È¥ê¤¬¸«ÉÕ¤«¤ë¤´¤È¤Ë¡¢
83 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤¬¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ä
84 ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤è¤ê¤âÀè¤Ë½èÍý¤µ¤ì¤ë (¹Ô¤¤¬¤±½çõº÷; preorder traversal)¡£
86 .\"O To avoid using up all of the calling process's file descriptors,
87 .\"O \fInopenfd\fP specifies the maximum number of directories that
89 .\"O will hold open simultaneously.
91 .\"O the search depth exceeds this,
93 .\"O will become slower because
94 .\"O directories have to be closed and reopened.
97 .\"O one file descriptor for each level in the directory tree.
98 ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¤ÀڤäÆ
99 ¤·¤Þ¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¡¢
101 ¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇÂç¿ô¤ò
103 ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤ë¡£
104 õº÷¤Î¿¼¤µ¤¬¤³¤ÎÃͤò±Û¤¨¤ë¤È¡¢
105 °ì¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊĤ¸¤Æ¤«¤é¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ª¡¼¥×¥ó¤·Ä¾¤¹¤³¤È
110 ¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î³¬ÁØ 1 ¥ì¥Ù¥ë¤Ë¤Ä¤¡¢
111 ºÇÂç¤Ç¤â°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤·¤«»ÈÍѤ·¤Ê¤¤¡£
113 .\"O For each entry found in the tree,
116 .\"O \fIfn\fP() with three arguments:
121 ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¸«¤Ä¤«¤Ã¤¿¥¨¥ó¥È¥êËè¤Ë¡¢
131 .\"O is the pathname of the entry,
132 .\"O and is expressed either as a pathname relative to the calling process's
133 .\"O current working directory at the time of the call to
137 .\"O was expressed as a relative pathname,
138 .\"O or as an absolute pathname, if
140 .\"O was expressed as an absolute pathname.
142 ¤Ï¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£
144 ¤¬ÁêÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢
148 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤Î¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê
149 ¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤Ê¤ë¡£
151 ¤¬ÀäÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢
155 .\"O is a pointer to the
157 .\"O structure returned by a call to
168 ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
170 .\"O is an integer that has one of the following values:
172 ¤ÏÀ°¿ô¤Ç¡¢°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë:
176 .\"O is a regular file.
178 ¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë
188 .\"O is a directory which can't be read.
190 ¤¬Æɤ߹þ¤ß¤Ç¤¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë
197 .\"O which is not a symbolic link.
198 ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤Ï¤Ê¤¤
206 .\"O is a symbolic link and
208 .\"O failed, POSIX.1-2001 states
209 .\"O that it is undefined whether \fBFTW_NS\fP or \fBFTW_SL\fP (see below)
213 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä
221 ¤ËÅϤµ¤ì¤ë¤«¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¡¢POSIX.1-2001 ¤Ë¤Ï½ñ¤«¤ì¤Æ¤¤¤ë¡£
223 .\"O To stop the tree walk, \fIfn\fP() returns a nonzero value; this
224 .\"O value will become the return value of
226 .\"O As long as \fIfn\fP() returns 0,
228 .\"O will continue either until it has traversed the entire tree,
229 .\"O in which case it will return zero,
230 .\"O or until it encounters an error (such as a
232 .\"O failure), in which case it will return \-1.
233 ¥Ä¥ê¡¼¤Îõº÷¤ò»ß¤á¤¿¤¤¾ì¹ç¤Ï¡¢
235 ¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤»¤ÐÎɤ¤
238 ¼«¿È¤ÎÌá¤êÃͤȤʤë)¡£
241 ¤Ï¥Ä¥ê¡¼Á´ÂΤÎõº÷¤ò³¤±¡¢¤¹¤Ù¤Æ¤Î¥Ä¥ê¡¼¤òõº÷¤·½ª¤¨¤¿¤È¤³¤í¤Ç
244 ¤Î¼ºÇԤʤɤÎ) ¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤¹¡£
248 .\"O uses dynamic data structures, the only safe way to
249 .\"O exit out of a tree walk is to return a nonzero value from \fIfn\fP().
250 .\"O To allow a signal to terminate the walk without causing a memory leak,
251 .\"O have the handler set a global flag that is checked by \fIfn\fP().
254 .\"O unless the program is going to terminate.
256 ¤ÏưŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤òÍѤ¤¤ë¤Î¤Ç¡¢¥Ä¥ê¡¼Ãµº÷¤ò°ÂÁ´¤ËÃæÃǤ¹¤ëÍ£°ì¤ÎÊýË¡¤Ï
259 ¤ÎÊÖ¤êÃͤȤ¹¤ë¤³¤È¤Ç¤¢¤ë¡£³ä¤ê¹þ¤ß¤ò°·¤¦¤Ë¤Ï¡¢
260 Î㤨¤ÐȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤ò¥Þ¡¼¥¯¤·¤Æ¤ª¤¤¤Æ¡¢ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤è¤¦¤Ë¤¹¤ë
261 ¥·¥°¥Ê¥ë¤Ë¤è¤ê¥á¥â¥ê¥ê¡¼¥¯¤òµ¯¤³¤µ¤º¤Ëõº÷¤ò½ªÎ»¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢
264 ¤¬¥Á¥§¥Ã¥¯¤¹¤ë¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£
265 ¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¾ì¹ç°Ê³°¤Ï¡¢
269 .\"O The function \fBnftw\fP() is the same as
271 .\"O except that it has one additional argument, \fIflags\fP,
272 .\"O and calls \fIfn\fP() with one more argument, \fIftwbuf\fP.
283 ¤¬Äɲ䵤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£
285 .\"O This \fIflags\fP argument is formed by ORing zero or more of the
286 .\"O following flags:
289 °ú¤¿ô¤Ï²¼µ¤Î¥Õ¥é¥°¤Î 0 ¸Ä°Ê¾å¤ÎÏÀÍýϤò¼è¤Ã¤¿¤â¤Î¤Ç¤¢¤ë:
291 .\"O .BR FTW_ACTIONRETVAL " (since glibc 2.3.3)"
292 .BR FTW_ACTIONRETVAL " (glibc 2.3.3 °Ê¹ß)"
293 .\"O If this glibc-specific flag is set, then
295 .\"O handles the return value from
299 .\"O should return one of the following values:
300 ¤³¤Î¥Õ¥é¥°¤Ï glibc ¸ÇͤǤ¢¤ë¡£
301 ¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢
305 ¤ÎÊÖ¤êÃͤΰ·¤¤¤¬ÊѤï¤ë¡£
307 ¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£
313 .\"O to continue normally.
315 ¤ÏÄ̾ïÄ̤ê½èÍý¤ò³¤±¤ë¡£
318 .\"O If \fIfn\fP() returns this value, then
319 .\"O siblings of the current entry will be skipped,
320 .\"O and processing continues in the parent.
322 ¤¬¤³¤ÎÃͤòÊÖ¤·¤¿¾ì¹ç¡¢½èÍýÃæ¤Î¥¨¥ó¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê)
323 ¤Î½èÍý¤Ï¥¹¥¥Ã¥×¤µ¤ì¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç³¤¤Î½èÍý¤¬¹Ô¤ï¤ì¤ë¡£
324 .\" If \fBFTW_DEPTH\fP
325 .\" is set, the entry's parent directory is processed next (with
326 .\" \fIflag\fP set to \fBFTW_DP\fP).
329 .\"O If \fIfn\fP() is called with an entry that is a directory
330 .\"O (\fItypeflag\fP is \fBFTW_D\fP), this return
331 .\"O value will prevent objects within that directory from being passed as
332 .\"O arguments to \fIfn\fP().
334 .\"O continues processing with the next sibling of the directory.
336 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¥¨¥ó¥È¥ê¤¬¥Ç¥£¥ì¥¯¥È¥ê
340 ¤Î¾ì¹ç¤Ë¡¢¤³¤ÎÃͤòÊÖ¤¹¤È
342 ¤Î°ú¤¿ô¤È¤·¤ÆÅϤµ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê¤Î½èÍý¤¬¹Ô¤ï¤ì¤Ê¤¯¤Ê¤ë¡£
344 ¤Ï½èÍýÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê) ¤«¤é½èÍý¤ò³¤±¤ë¡£
349 .\"O to return immediately with the return value
356 .\"O Other return values could be associated with new actions in the future;
357 .\"O \fIfn\fP() should not return values other than those listed above.
358 ¾¤ÎÊÖ¤êÃͤϾÍè¿·¤·¤¤Æ°ºî¤ËÂбþÉÕ¤±¤é¤ì¤ë²ÄǽÀ¤¬¤¢¤ë¡£
360 ¤Ï¾åµ¤Î¥ê¥¹¥È¤Ë¤¢¤ëÃͰʳ°¤òÊÖ¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤¤Ç¤¢¤ë¡£
362 .\"O The feature test macro
365 .\"O (before including
369 .\"O obtain the definition of \fBFTW_ACTIONRETVAL\fP from \fI<ftw.h>\fP.
373 ¤ÎÄêµÁ¤¬Í¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢
374 (¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë)
377 ¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
383 .\"O to each directory before handling its contents.
384 .\"O This is useful if the program needs to perform some action
385 .\"O in the directory in which \fIfpath\fP resides.
386 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò½èÍý¤¹¤ëÁ°¤Ë
391 ¤¬Â°¤¹¥Ç¥£¥ì¥¯¥È¥ê¤Ç²¿¤é¤«¤ÎÆ°ºî¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë
395 .\"O If set, do a post-order traversal, that is, call \fIfn\fP() for
396 .\"O the directory itself \fIafter\fP handling the contents of the directory
397 .\"O and its subdirectories.
398 .\"O (By default, each directory is handled \fIbefore\fP its contents.)
399 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢µ¢¤ê¤¬¤±½çõº÷ (post-order traversal) ¤ò¹Ô¤¦¡£
400 ¤Ä¤Þ¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤ò°ú¤¿ô¤È¤·¤¿
402 ¸Æ½Ð¤·¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë
403 ÂФ¹¤ë½èÍý¤Î¡Ö¸å¤Ç¡×¹Ô¤ï¤ì¤ë
404 (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤Î½èÍý¤Ï¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê
405 ¤è¤ê¡ÖÁ°¤Ë¡×¹Ô¤Ê¤ï¤ì¤ë)¡£
408 .\"O If set, stay within the same file system
409 .\"O (i.e., do not cross mount points).
410 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤À¤±¤òõº÷ÂоݤȤ¹¤ë
411 (¤Ä¤Þ¤ê¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¤Þ¤¿¤°¤³¤È¤Ï¤Ê¤¤)¡£
414 .\"O If set, do not follow symbolic links.
415 .\"O (This is what you want.)
416 .\"O If not set, symbolic links are followed, but no file is reported twice.
417 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤é¤Ê¤¤ (¤ª¤½¤é¤¯¤³¤Á¤é¤¬
418 Ä̾ï˾¤Þ¤·¤¤Æ°ºî¤À¤í¤¦)¡£¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò
419 é¤ë¤¬¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤¬Æó²óÊó¹ð¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
421 .\"O If \fBFTW_PHYS\fP is not set, but \fBFTW_DEPTH\fP is set,
422 .\"O then the function
424 .\"O is never called for a directory that would be a descendant of itself.
428 ¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¼«Ê¬¼«¿È¤ËÂФ¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òÇÛ²¼¤Ë»ý¤Ä
431 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£
433 .\"O For each entry in the directory tree,
437 .\"O with four arguments.
444 .\"O may receive any of the same values as with
446 .\"O or any of the following values:
447 ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥¨¥ó¥È¥êËè¤Ë¡¢
461 ¤Ç¼è¤êÆÀ¤ëÃͤΤ¤¤º¤ì¤«¡¢¤Þ¤¿¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÅϤµ¤ì¤ë:
465 .\"O is a directory, and \fBFTW_DEPTH\fP was specified in \fIflags\fP.
466 .\"O All of the files
467 .\"O and subdirectories within \fIfpath\fP have been processed.
469 ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢¤«¤Ä
475 ÇÛ²¼¤Î¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÏÁ´¤Æ½èÍý¤¬½ª¤ï¤Ã¤Æ¤¤¤ë¡£
479 .\"O is a symbolic link, and \fBFTW_PHYS\fP was set in \fIflags\fP.
481 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä \fBFTW_PHYS\fP ¤¬ \fIflags\fP ¤Ë
483 .\" To obtain the definition of this constant from
487 .\" must be defined, or
488 .\" .BR _XOPEN_SOURCE
489 .\" must be defined with a value of 500 or more.
493 .\"O is a symbolic link pointing to a nonexistent file.
494 .\"O (This occurs only if \fBFTW_PHYS\fP is not set.)
496 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë
497 (¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤ë¤Î¤Ï
499 ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤À¤±¤Ç¤¢¤ë)¡£
501 .\"O The fourth argument that
503 .\"O supplies when calling
505 .\"O is a structure of type \fIFTW\fP:
509 ¤ò¸Æ¤Ó½Ð¤¹ºÝ¤ËÅϤ¹ 4¤Ä¤á¤Î°ú¤¿ô¤Ï
523 .\"O is the offset of the filename (i.e., basename component)
524 .\"O in the pathname given in
529 .\"O in the directory tree, relative to the root of the tree
531 .\"O which has depth 0).
533 ¤Ï¡¢¥Õ¥¡¥¤¥ë̾ (basename Í×ÁÇ) ¤Î¡¢
535 ¤ÇÅϤµ¤ì¤ë¥Ñ¥¹Ì¾¤ÎÃæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£
537 ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¤Î
539 ¤Î¿¼¤µ¤ò¼¨¤¹¡£¿¼¤µ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥È¥Ã¥× (root) ¤«¤é¤Î
543 .\"O .SH "RETURN VALUE"
545 .\"O These functions return 0 on success, and \-1 if an error occurs.
546 ¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£
548 .\"O If \fIfn\fP() returns nonzero,
549 .\"O then the tree walk is terminated and the value returned by \fIfn\fP()
550 .\"O is returned as the result of \fBftw\fP() or
553 ¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤·¡¢
563 .\"O is called with the \fBFTW_ACTIONRETVAL\fP flag,
564 .\"O then the only nonzero value that should be used by \fIfn\fP()
565 .\"O to terminate the tree walk is \fBFTW_STOP\fP,
566 .\"O and that value is returned as the result of
571 ¥Õ¥é¥°ÉÕ¤¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¡¢¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤µ¤»¤ë¤¿¤á¤Ë
573 ¤¬»ÈÍѤǤ¤ë¡¢Èó 0 ¤ÎÃͤÏ
578 ¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£
579 .\"O .SH "CONFORMING TO"
581 POSIX.1-2001, SVr4, SUSv1.
582 .\"O POSIX.1-2008 marks
587 ¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£
590 .\"O POSIX.1-2001 note that the results are unspecified if
592 .\"O does not preserve the current working directory.
593 POSIX.1-2001 ¤ÎÃíµ¤Ë¤è¤ë¤È¡¢
595 ¤¬¥«¥ì¥ó¥È¥ï¡¼¥¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤òÊÝ»ý¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î
596 ·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£
600 .\"O and the use of \fBFTW_SL\fP with
602 .\"O were introduced in SUSv1.
608 ¤Ï¡¢SUSv1 ¤ÇƳÆþ¤µ¤ì¤¿¡£
612 .\"O will never use \fBFTW_SL\fP, on other systems \fBFTW_SL\fP occurs only
613 .\"O for symbolic links that do not point to an existing file,
614 .\"O and again on other systems
616 .\"O will use \fBFTW_SL\fP for each symbolic link.
617 .\"O For predictable control, use
622 ¤ò°ìÀڻȤï¤Ê¤¤¥·¥¹¥Æ¥à¤ä¡¢
623 ¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¤Î¤ß
627 ¤¬Á´¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ËÂФ·¤Æ
629 ¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë¡£
630 ͽ¬²Äǽ¤ÊÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢
634 .\"O Under Linux, libc4 and libc5 and glibc 2.0.6 will
635 .\"O use \fBFTW_F\fP for all objects (files, symbolic links, FIFOs, etc.)
636 .\"O that can be stat'ed but are not a directory.
637 Linux ¤Ç¤Ï¡¢ libc4, libc5, glibc 2.0.6 ¤Ï
638 ¡Östat ¤Ç¤¤ë¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¡×
639 (¥Õ¥¡¥¤¥ë, ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯, fifo Åù)
646 .\"O is available since glibc 2.1.
648 ´Ø¿ô¤Ï glibc 2.1 °Ê¹ß¤ÇÍøÍѤǤ¤ë¡£
650 .\"O \fBFTW_ACTIONRETVAL\fP is glibc-specific.
652 ¤Ï glibc ¸ÇͤǤ¢¤ë¡£
655 .\"O The following program traverses the directory tree under the path named
656 .\"O in its first command-line argument, or under the current directory
657 .\"O if no argument is supplied.
658 .\"O It displays various information about each file.
659 .\"O The second command-line argument can be used to specify characters that
660 .\"O control the value assigned to the \fIflags\fP
661 .\"O argument when calling
663 °Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤¿ô¤ò̾Á°¤Ë»ý¤Ä¥Ñ¥¹°Ê²¼¤Î
664 ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òõº÷¤¹¤ë¡£°ú¤¿ô¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢
665 ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤òõº÷¤¹¤ë¡£
666 ³Æ¡¹¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤ÆÍÍ¡¹¤Î¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£
667 ÆóÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤¿ô¤Ëʸ»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢
671 °ú¤¿ô¤ËÅϤ¹ÃͤòÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£
674 #define _XOPEN_SOURCE 500
682 display_info(const char *fpath, const struct stat *sb,
683 int tflag, struct FTW *ftwbuf)
685 printf("%\-3s %2d %7jd %\-40s %d %s\\n",
686 (tflag == FTW_D) ? "d" : (tflag == FTW_DNR) ? "dnr" :
687 (tflag == FTW_DP) ? "dp" : (tflag == FTW_F) ? "f" :
688 (tflag == FTW_NS) ? "ns" : (tflag == FTW_SL) ? "sl" :
689 (tflag == FTW_SLN) ? "sln" : "???",
690 ftwbuf\->level, (intmax_t) sb\->st_size,
691 fpath, ftwbuf\->base, fpath + ftwbuf\->base);
692 return 0; /* To tell nftw() to continue */
696 main(int argc, char *argv[])
700 if (argc > 2 && strchr(argv[2], \(aqd\(aq) != NULL)
702 if (argc > 2 && strchr(argv[2], \(aqp\(aq) != NULL)
705 if (nftw((argc < 2) ? "." : argv[1], display_info, 20, flags)