OSDN Git Service

(split) LDP v3.24 -> v3.29 の定型的な変更内容を反映。
[linuxjm/LDP_man-pages.git] / release / man3 / ftw.3
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>
5 .\"
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.
10 .\"
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.
15 .\"
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.
20 .\"
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,
24 .\" USA.
25 .\"
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.
34 .\"
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
40 .\"
41 .\" WORD:       file descriptor         ¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
42 .\"
43 .TH FTW 3 2010-09-20 "Linux" "Linux Programmer's Manual"
44 .SH Ì¾Á°
45 ftw, nftw \- ¥Õ¥¡¥¤¥ë¥Ä¥ê¡¼¤òÊ⤭¤Þ¤ï¤ë
46 .SH ½ñ¼°
47 .nf
48 .B #include <ftw.h>
49 .sp
50 .BI "int ftw(const char *" dirpath ,
51 .BI "        int (*" fn ") (const char *" fpath ", const struct stat *" sb ,
52 .BI "                   int " typeflag ),
53 .BI "        int " nopenfd );
54 .sp
55 .B #define _XOPEN_SOURCE 500
56 .B #include <ftw.h>
57 .sp
58 .BI "int nftw(const char *" dirpath ,
59 .BI "        int (*" fn ") (const char *" fpath ", const struct stat *" sb ,
60 .BI "                   int " typeflag ", struct FTW *" ftwbuf ),
61 .BI "        int " nopenfd ", int " flags );
62 .fi
63 .SH ÀâÌÀ
64 .BR ftw ()
65 ¤Ï¡¢
66 .I dirpath
67 ¤Ç»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼Á´ÂΤòÊ⤭¤Þ¤ï¤ê¡¢
68 ¥Ä¥ê¡¼Ãæ¤Ç¥¨¥ó¥È¥ê¤¬¸«ÉÕ¤«¤ë¤´¤È¤Ë¡¢
69 .IR fn ()
70 ¤ò¸Æ¤Ó½Ð¤¹¡£
71 ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤¬¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¥Õ¥¡¥¤¥ë¤ä
72 ¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤è¤ê¤âÀè¤Ë½èÍý¤µ¤ì¤ë (¹Ô¤­¤¬¤±½çõº÷; preorder traversal)¡£
73
74 ¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤¬ÍøÍѲÄǽ¤Ê¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ò»È¤¤ÀڤäÆ
75 ¤·¤Þ¤ï¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤¿¤á¡¢
76 .BR ftw ()
77 ¤¬Æ±»þ¤Ë¥ª¡¼¥×¥ó¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎºÇÂç¿ô¤ò
78 .I nopenfd
79 ¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
80 õº÷¤Î¿¼¤µ¤¬¤³¤ÎÃͤò±Û¤¨¤ë¤È¡¢
81 °ì¤Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÊĤ¸¤Æ¤«¤é¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ª¡¼¥×¥ó¤·Ä¾¤¹¤³¤È
82 ¤Ë¤Ê¤ë¤Î¤Ç¡¢
83 .BR ftw ()
84 ¤ÎÆ°ºî¤ÏÃÙ¤¯¤Ê¤ë¡£
85 .BR ftw ()
86 ¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î³¬ÁØ 1 ¥ì¥Ù¥ë¤Ë¤Ä¤­¡¢
87 ºÇÂç¤Ç¤â°ì¤Ä¤Î¥Õ¥¡¥¤¥ë¥Ç¥£¥¹¥¯¥ê¥×¥¿¤·¤«»ÈÍѤ·¤Ê¤¤¡£
88
89 ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¸«¤Ä¤«¤Ã¤¿¥¨¥ó¥È¥êËè¤Ë¡¢
90 .BR ftw ()
91 ¤Ï
92 .IR fpath ,
93 .IR sb ,
94 .I typeflag
95 ¤Î 3¤Ä¤ò°ú¤­¿ô¤È¤·¤Æ
96 .IR fn ()
97 ¤ò¸Æ¤Ó½Ð¤¹¡£
98 .I fpath
99 ¤Ï¥¨¥ó¥È¥ê¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£
100 .I dirpath
101 ¤¬ÁêÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢
102 .I fpath
103 ¤Ï
104 .BR ftw ()
105 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿»þÅÀ¤Î¸Æ¤Ó½Ð¤·¸µ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê
106 ¤«¤é¤ÎÁêÂХѥ¹Ì¾¤È¤Ê¤ë¡£
107 .I dirpath
108 ¤¬ÀäÂХѥ¹Ì¾¤Ç»ØÄꤵ¤ì¤¿¾ì¹ç¤Ë¤Ï¡¢
109 .I fpath
110 ¤ÏÀäÂХѥ¹Ì¾¤È¤Ê¤ë¡£
111 .I sb
112 ¤Ï
113 .I fpath
114 ¤ËÂФ¹¤ë
115 .BR stat (2)
116 ¤Î¸Æ¤Ó½Ð¤·¤ÇÊÖ¤µ¤ì¤ë
117 .I stat
118 ¹½Â¤ÂΤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
119 .I typeflag
120 ¤ÏÀ°¿ô¤Ç¡¢°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤Ç¤¢¤ë:
121 .TP
122 .B FTW_F
123 .I fpath
124 ¤¬Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¢¤ë
125 .TP
126 .B FTW_D
127 .I fpath
128 ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë
129 .TP
130 .B FTW_DNR
131 .I fpath
132 ¤¬Æɤ߹þ¤ß¤Ç¤­¤Ê¤¤¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¢¤ë
133 .TP
134 .B FTW_NS
135 ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¤Ï¤Ê¤¤
136 .I fpath
137 ¤ËÂФ¹¤ë
138 .BR stat (2)
139 ¸Æ¤Ó½Ð¤·¤¬¼ºÇÔ¤·¤¿¡£
140 .sp
141 .I fpath
142 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä
143 .BR stat (2)
144 ¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢
145 .B FTW_NS
146 ¤È
147 .B FTW_SL
148 (¸å½Ò) ¤Î¤É¤Á¤é¤¬
149 .I typeflag
150 ¤ËÅϤµ¤ì¤ë¤«¤Ï̤ÄêµÁ¤Ç¤¢¤ë¤È¡¢POSIX.1-2001 ¤Ë¤Ï½ñ¤«¤ì¤Æ¤¤¤ë¡£
151 .PP
152 ¥Ä¥ê¡¼¤Îõº÷¤ò»ß¤á¤¿¤¤¾ì¹ç¤Ï¡¢
153 .IR fn ()
154 ¤¬ 0 °Ê³°¤ÎÃͤòÊÖ¤»¤ÐÎɤ¤
155 (¤³¤ÎÃͤÏ
156 .BR ftw ()
157 ¼«¿È¤ÎÌá¤êÃͤȤʤë)¡£
158 ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï
159 .BR ftw ()
160 ¤Ï¥Ä¥ê¡¼Á´ÂΤÎõº÷¤ò³¤±¡¢¤¹¤Ù¤Æ¤Î¥Ä¥ê¡¼¤òõº÷¤·½ª¤¨¤¿¤È¤³¤í¤Ç
161 0 ¤òÊÖ¤¹¡£Ãµº÷Ãæ¤Ë
162 .RB ( malloc (3)
163 ¤Î¼ºÇԤʤɤÎ) ¥¨¥é¡¼¤¬µ¯¤³¤ë¤È \-1 ¤òÊÖ¤¹¡£
164 .PP
165 .BR ftw ()
166 ¤ÏưŪ¤Ê¥Ç¡¼¥¿¹½Â¤¤òÍѤ¤¤ë¤Î¤Ç¡¢¥Ä¥ê¡¼Ãµº÷¤ò°ÂÁ´¤ËÃæÃǤ¹¤ëÍ£°ì¤ÎÊýË¡¤Ï
167 0 °Ê³°¤ÎÃͤò
168 .IR fn ()
169 ¤ÎÊÖ¤êÃͤȤ¹¤ë¤³¤È¤Ç¤¢¤ë¡£³ä¤ê¹þ¤ß¤ò°·¤¦¤Ë¤Ï¡¢
170 Î㤨¤ÐȯÀ¸¤·¤¿³ä¤ê¹þ¤ß¤ò¥Þ¡¼¥¯¤·¤Æ¤ª¤¤¤Æ¡¢ 0 °Ê³°¤ÎÃͤòÊÖ¤¹¤è¤¦¤Ë¤¹¤ë
171 ¥·¥°¥Ê¥ë¤Ë¤è¤ê¥á¥â¥ê¥ê¡¼¥¯¤òµ¯¤³¤µ¤º¤Ëõº÷¤ò½ªÎ»¤Ç¤­¤ë¤è¤¦¤Ë¤¹¤ë¤Ë¤Ï¡¢
172 ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ç
173 .IR fn ()
174 ¤¬¥Á¥§¥Ã¥¯¤¹¤ë¥°¥í¡¼¥Ð¥ë¤Ê¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£
175 ¥×¥í¥°¥é¥à¤ò½ªÎ»¤µ¤»¤ë¾ì¹ç°Ê³°¤Ï¡¢
176 .BR longjmp (3)
177 ¤ò»ÈÍѤ·¤Ê¤¤¤³¤È¡£
178 .SS nftw()
179 ´Ø¿ô
180 .BR nftw ()
181 ¤Ï
182 .BR ftw ()
183 ¤ÈƱ¤¸¤À¤¬¡¢°ú¤­¿ô
184 .I flags
185 ¤¬Äɲ䵤ì¤ëÅÀ¤È¡¢
186 .IR fn ()
187 ¤Î°ú¤­¿ô¤Ë
188 .I ftwbuf
189 ¤¬Äɲ䵤ì¤ëÅÀ¤¬°Û¤Ê¤ë¡£
190
191 ¤³¤Î
192 .I flags
193 °ú¤­¿ô¤Ï²¼µ­¤Î¥Õ¥é¥°¤Î 0 ¸Ä°Ê¾å¤ÎÏÀÍýϤò¼è¤Ã¤¿¤â¤Î¤Ç¤¢¤ë:
194 .TP
195 .BR FTW_ACTIONRETVAL " (glibc 2.3.3 °Ê¹ß)"
196 ¤³¤Î¥Õ¥é¥°¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£
197 ¤³¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢
198 .BR nftw ()
199 ¤Î
200 .IR fn ()
201 ¤ÎÊÖ¤êÃͤΰ·¤¤¤¬ÊѤï¤ë¡£
202 .IR fn ()
203 ¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«°ì¤Ä¤òÊÖ¤¹É¬Íפ¬¤¢¤ë¡£
204 .RS
205 .TP
206 .B FTW_CONTINUE
207 .BR nftw ()
208 ¤ÏÄ̾ïÄ̤ê½èÍý¤ò³¤±¤ë¡£
209 .TP
210 .B FTW_SKIP_SIBLINGS
211 .IR fn ()
212 ¤¬¤³¤ÎÃͤòÊÖ¤·¤¿¾ì¹ç¡¢½èÍýÃæ¤Î¥¨¥ó¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê)
213 ¤Î½èÍý¤Ï¥¹¥­¥Ã¥×¤µ¤ì¡¢¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ç³¤­¤Î½èÍý¤¬¹Ô¤ï¤ì¤ë¡£
214 .\" If \fBFTW_DEPTH\fP
215 .\" is set, the entry's parent directory is processed next (with
216 .\" \fIflag\fP set to \fBFTW_DP\fP).
217 .TP
218 .B FTW_SKIP_SUBTREE
219 .IR fn ()
220 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤¿¥¨¥ó¥È¥ê¤¬¥Ç¥£¥ì¥¯¥È¥ê
221 .RI ( typeflag
222 ¤¬
223 .BR FTW_D )
224 ¤Î¾ì¹ç¤Ë¡¢¤³¤ÎÃͤòÊÖ¤¹¤È
225 .IR fn ()
226 ¤Î°ú¤­¿ô¤È¤·¤ÆÅϤµ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê¤Î½èÍý¤¬¹Ô¤ï¤ì¤Ê¤¯¤Ê¤ë¡£
227 .BR nftw ()
228 ¤Ï½èÍýÃæ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î·»Äï (Ʊ¤¸³¬ÁؤΥ¨¥ó¥È¥ê) ¤«¤é½èÍý¤ò³¤±¤ë¡£
229 .TP
230 .B FTW_STOP
231 .B nftw ()
232 ¤Ï¡¢ÊÖ¤êÃÍ
233 .B FTW_STOP
234 ¤Ç¤¹¤°¤ËÉüµ¢¤¹¤ë¡£
235 .PP
236 ¾¤ÎÊÖ¤êÃͤϾ­Íè¿·¤·¤¤Æ°ºî¤ËÂбþÉÕ¤±¤é¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¡£
237 .IR fn ()
238 ¤Ï¾åµ­¤Î¥ê¥¹¥È¤Ë¤¢¤ëÃͰʳ°¤òÊÖ¤µ¤Ê¤¤¤è¤¦¤Ë¤¹¤Ù¤­¤Ç¤¢¤ë¡£
239
240 .I <ftw.h>
241 ¤Ç
242 .B FTW_ACTIONRETVAL
243 ¤ÎÄêµÁ¤¬Í­¸ú¤Ë¤¹¤ë¤¿¤á¤Ë¤Ï¡¢
244 (¡Ö¤É¤Î¡×¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥¯¥ë¡¼¥É¤¹¤ë¤è¤ê¤âÁ°¤Ë)
245 µ¡Ç½¸¡ºº¥Þ¥¯¥í
246 .B _GNU_SOURCE
247 ¤òÄêµÁ¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
248 .RE
249 .TP
250 .B FTW_CHDIR
251 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ÎÆâÍƤò½èÍý¤¹¤ëÁ°¤Ë
252 ¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë
253 .BR chdir (2)
254 ¤¹¤ë¡£¤³¤Î¥Õ¥é¥°¤Ï¡¢
255 .I fpath
256 ¤¬Â°¤¹¥Ç¥£¥ì¥¯¥È¥ê¤Ç²¿¤é¤«¤ÎÆ°ºî¤ò¼Â¹Ô¤¹¤ëɬÍפ¬¤¢¤ë¾ì¹ç¤Ë
257 ÊØÍø¤Ç¤¢¤ë¡£
258 .TP
259 .B FTW_DEPTH
260 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢µ¢¤ê¤¬¤±½çõº÷ (post-order traversal) ¤ò¹Ô¤¦¡£
261 ¤Ä¤Þ¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤ò°ú¤­¿ô¤È¤·¤¿
262 .IR fn ()
263 ¸Æ½Ð¤·¤Ï¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤Ë
264 ÂФ¹¤ë½èÍý¤Î¡Ö¸å¤Ç¡×¹Ô¤ï¤ì¤ë
265 (¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤Î½èÍý¤Ï¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¥¨¥ó¥È¥ê
266 ¤è¤ê¡ÖÁ°¤Ë¡×¹Ô¤Ê¤ï¤ì¤ë)¡£
267 .TP
268 .B FTW_MOUNT
269 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÃæ¤À¤±¤òõº÷ÂоݤȤ¹¤ë
270 (¤Ä¤Þ¤ê¡¢¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò¤Þ¤¿¤°¤³¤È¤Ï¤Ê¤¤)¡£
271 .TP
272 .B FTW_PHYS
273 ¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òé¤é¤Ê¤¤ (¤ª¤½¤é¤¯¤³¤Á¤é¤¬
274 Ä̾ï˾¤Þ¤·¤¤Æ°ºî¤À¤í¤¦)¡£¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ò
275 é¤ë¤¬¡¢Æ±¤¸¥Õ¥¡¥¤¥ë¤¬Æó²óÊó¹ð¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£
276 .sp
277 .B FTW_PHYS
278 ¤¬¥»¥Ã¥È¤µ¤ì¤º¤Ë
279 .B FTW_DEPTH
280 ¤¬¥»¥Ã¥È¤µ¤ì¤ë¤È¡¢¼«Ê¬¼«¿È¤ËÂФ¹¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤òÇÛ²¼¤Ë»ý¤Ä
281 ¥Ç¥£¥ì¥¯¥È¥ê¤ËÂФ·¤Æ
282 .IR fn ()
283 ¤¬¸Æ¤Ó½Ð¤µ¤ì¤ë¤³¤È¤Ï·è¤·¤Æ¤Ê¤¤¡£
284 .LP
285 ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥¨¥ó¥È¥êËè¤Ë¡¢
286 .BR nftw ()
287 ¤Ï 4¤Ä¤Î°ú¤­¿ô¤Ç
288 .IR fn ()
289 ¤ò¸Æ¤Ó½Ð¤¹¡£
290 .I fpath
291 ¤È
292 .I sb
293 ¤Ï
294 .BR ftw ()
295 ¤ÈƱ¤¸¤Ç¤¢¤ë¡£
296 .I typeflag
297 ¤Ë¤Ï¡¢
298 .BR ftw ()
299 ¤Ç¼è¤êÆÀ¤ëÃͤΤ¤¤º¤ì¤«¡¢¤Þ¤¿¤Ï°Ê²¼¤ÎÃͤΤ¤¤º¤ì¤«¤¬ÅϤµ¤ì¤ë:
300 .TP
301 .B FTW_DP
302 .I fpath
303 ¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢¤«¤Ä
304 .I flags
305 ¤Ç
306 .B FTW_DEPTH
307 ¤¬»ØÄꤵ¤ì¤Æ¤¤¤¿¡£
308 .I fpath
309 ÇÛ²¼¤Î¥Õ¥¡¥¤¥ë¤È¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ÏÁ´¤Æ½èÍý¤¬½ª¤ï¤Ã¤Æ¤¤¤ë¡£
310 .TP
311 .B FTW_SL
312 .I fpath
313 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢¤«¤Ä \fBFTW_PHYS\fP ¤¬ \fIflags\fP ¤Ë
314 ¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤¿¡£
315 .\" To obtain the definition of this constant from
316 .\" .IR <ftw.h> ,
317 .\" either
318 .\" .B _BSD_SOURCE
319 .\" must be defined, or
320 .\" .BR _XOPEN_SOURCE
321 .\" must be defined with a value of 500 or more.
322 .TP
323 .B FTW_SLN
324 .I fpath
325 ¤¬¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Ç¡¢Â¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë
326 (¤³¤ì¤¬¥»¥Ã¥È¤µ¤ì¤ë¤Î¤Ï
327 .B FTW_PHYS
328 ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¤À¤±¤Ç¤¢¤ë)¡£
329 .LP
330 .BR nftw ()
331 ¤¬
332 .IR fn ()
333 ¤ò¸Æ¤Ó½Ð¤¹ºÝ¤ËÅϤ¹ 4¤Ä¤á¤Î°ú¤­¿ô¤Ï
334 .I FTW
335 ·¿¤Î¹½Â¤ÂΤǤ¢¤ë¡£
336 .in +4n
337 .nf
338
339 struct FTW {
340     int base;
341     int level;
342 };
343
344 .fi
345 .in
346 .I base
347 ¤Ï¡¢¥Õ¥¡¥¤¥ë̾ (basename Í×ÁÇ) ¤Î¡¢
348 .I fpath
349 ¤ÇÅϤµ¤ì¤ë¥Ñ¥¹Ì¾¤ÎÃæ¤Ç¤Î¥ª¥Õ¥»¥Ã¥È¤Ç¤¢¤ë¡£
350 .I level
351 ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ç¤Î
352 .I fpath
353 ¤Î¿¼¤µ¤ò¼¨¤¹¡£¿¼¤µ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Î¥È¥Ã¥× (root) ¤«¤é¤Î
354 ÁêÂÐÃͤǤ¢¤ë
355 .RI ( dirpath
356 ¤Ï¿¼¤µ 0 ¤Ç¤¢¤ë)¡£
357 .SH ÊÖ¤êÃÍ
358 ¤³¤ì¤é¤Î´Ø¿ô¤Ï¡¢À®¸ù¤¹¤ë¤È 0 ¤ò¡¢¥¨¥é¡¼¤¬È¯À¸¤¹¤ë¤È \-1 ¤òÊÖ¤¹¡£
359
360 .IR fn ()
361 ¤¬ 0 °Ê³°¤òÊÖ¤·¤¿¾ì¹ç¡¢¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤·¡¢
362 .IR fn ()
363 ¤¬ÊÖ¤·¤¿Ãͤò
364 .BR ftw ()
365 ¤ä
366 .BR nftw ()
367 ¤Î·ë²Ì¤È¤·¤ÆÊÖ¤¹¡£
368
369 .BR nftw ()
370 ¤¬
371 .B FTW_ACTIONRETVAL
372 ¥Õ¥é¥°ÉÕ¤­¤Ç¸Æ¤Ð¤ì¤¿¾ì¹ç¡¢¥Ä¥ê¡¼¤Îõº÷¤ò½ªÎ»¤µ¤»¤ë¤¿¤á¤Ë
373 .IR fn ()
374 ¤¬»ÈÍѤǤ­¤ë¡¢Èó 0 ¤ÎÃͤÏ
375 .B FTW_STOP
376 ¤À¤±¤Ç¤¢¤ê¡¢
377 ¤³¤ÎÃͤÏ
378 .BR nftw ()
379 ¤ÎÊÖ¤êÃͤȤ·¤ÆÊÖ¤µ¤ì¤ë¡£
380 .SH ½àµò
381 POSIX.1-2001, SVr4, SUSv1.
382 POSIX.1-2008 ¤Ï
383 .BR ftw ()
384 ¤òÇÑ»ßͽÄê¤È¤·¤Æ¤¤¤ë¡£
385 .SH Ãí°Õ
386 POSIX.1-2001 ¤ÎÃíµ­¤Ë¤è¤ë¤È¡¢
387 .I fn
388 ¤¬¥«¥ì¥ó¥È¥ï¡¼¥­¥ó¥°¥Ç¥£¥ì¥¯¥È¥ê¤òÊÝ»ý¤·¤Ê¤«¤Ã¤¿¾ì¹ç¤Î
389 ·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¤µ¤ì¤Æ¤¤¤ë¡£
390 .PP
391 .BR nftw ()
392 ´Ø¿ô¤È¡¢
393 .BR ftw ()
394 ¤Ë¤ª¤±¤ë
395 .B FTW_SL
396 ¤Ï¡¢SUSv1 ¤ÇƳÆþ¤µ¤ì¤¿¡£
397 .LP
398 .BR ftw ()
399 ¤Ç
400 .B FTW_SL
401 ¤ò°ìÀڻȤï¤Ê¤¤¥·¥¹¥Æ¥à¤ä¡¢
402 ¸ºß¤·¤Ê¤¤¥Õ¥¡¥¤¥ë¤ò»Ø¤·¤Æ¤¤¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤Î¾ì¹ç¤Ë¤Î¤ß
403 .B FTW_SL
404 ¤ò»È¤¦¥·¥¹¥Æ¥à¡¢¤Þ¤¿
405 .BR ftw ()
406 ¤¬Á´¤Æ¤Î¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯¤ËÂФ·¤Æ
407 .B FTW_SL
408 ¤ò»È¤¦¥·¥¹¥Æ¥à¤â¤¢¤ë¡£
409 ͽ¬²Äǽ¤ÊÆ°ºî¤ò¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢
410 .BR nftw ()
411 ¤ò»È¤¦¤³¤È¡£
412 .LP
413 Linux ¤Ç¤Ï¡¢ libc4, libc5, glibc 2.0.6 ¤Ï
414 ¡Östat ¤Ç¤­¤ë¤¬¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤Ê¤¤¥ª¥Ö¥¸¥§¥¯¥È¡×
415 (¥Õ¥¡¥¤¥ë, ¥·¥ó¥Ü¥ê¥Ã¥¯¥ê¥ó¥¯, fifo Åù)
416 ¤ËÂФ·¤Æ¤Ï¤¹¤Ù¤Æ
417 .B FTW_F
418 ¤ò»È¤¦¡£
419
420 .BR nftw ()
421 ´Ø¿ô¤Ï glibc 2.1 °Ê¹ß¤ÇÍøÍѤǤ­¤ë¡£
422
423 .B FTW_ACTIONRETVAL
424 ¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£
425 .SH Îã
426 °Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢°ì¤ÄÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤ò̾Á°¤Ë»ý¤Ä¥Ñ¥¹°Ê²¼¤Î
427 ¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤òõº÷¤¹¤ë¡£°ú¤­¿ô¤¬»ØÄꤵ¤ì¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢
428 ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê°Ê²¼¤òõº÷¤¹¤ë¡£
429 ³Æ¡¹¤Î¥Õ¥¡¥¤¥ë¤Ë¤Ä¤¤¤ÆÍÍ¡¹¤Î¾ðÊó¤¬É½¼¨¤µ¤ì¤ë¡£
430 ÆóÈÖÌܤΥ³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ëʸ»ú¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢
431 .BR nftw ()
432 ¤ò¸Æ¤Ó½Ð¤¹ºÝ¤Ë
433 .I flags
434 °ú¤­¿ô¤ËÅϤ¹ÃͤòÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
435 .nf
436
437 #define _XOPEN_SOURCE 500
438 #include <ftw.h>
439 #include <stdio.h>
440 #include <stdlib.h>
441 #include <string.h>
442 #include <stdint.h>
443
444 static int
445 display_info(const char *fpath, const struct stat *sb,
446              int tflag, struct FTW *ftwbuf)
447 {
448     printf("%\-3s %2d %7jd   %\-40s %d %s\\n",
449         (tflag == FTW_D) ?   "d"   : (tflag == FTW_DNR) ? "dnr" :
450         (tflag == FTW_DP) ?  "dp"  : (tflag == FTW_F) ?   "f" :
451         (tflag == FTW_NS) ?  "ns"  : (tflag == FTW_SL) ?  "sl" :
452         (tflag == FTW_SLN) ? "sln" : "???",
453         ftwbuf\->level, (intmax_t) sb\->st_size,
454         fpath, ftwbuf\->base, fpath + ftwbuf\->base);
455     return 0;           /* To tell nftw() to continue */
456 }
457
458 int
459 main(int argc, char *argv[])
460 {
461     int flags = 0;
462
463     if (argc > 2 && strchr(argv[2], \(aqd\(aq) != NULL)
464         flags |= FTW_DEPTH;
465     if (argc > 2 && strchr(argv[2], \(aqp\(aq) != NULL)
466         flags |= FTW_PHYS;
467
468     if (nftw((argc < 2) ? "." : argv[1], display_info, 20, flags)
469             == \-1) {
470         perror("nftw");
471         exit(EXIT_FAILURE);
472     }
473     exit(EXIT_SUCCESS);
474 }
475 .fi
476 .SH ´ØÏ¢¹àÌÜ
477 .BR stat (2),
478 .BR fts (3),
479 .BR readdir (3),
480 .BR feature_test_macros (7)