File: ftw.3

package info (click to toggle)
manpages-pt 20040726-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 2,988 kB
  • sloc: sh: 45; makefile: 16
file content (153 lines) | stat: -rw-r--r-- 6,032 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
.\" Copyright (c) 1993 Michael Haardt (michael@moria.de)
.\" Copyright (c) 1999 Andries Brouwer (aeb@cwi.nl)
.\" Fri Jun 25 00:34:07 CEST 1999
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.\" Modified Sun Jul 25 11:02:22 1993 by Rik Faith (faith@cs.unc.edu)
.TH FTW 3 "25 de junho de 1999" "Linux" "Manual do Programador Linux"
.SH NOME
ftw, nftw \- caminha pela rvore de arquivos
.SH SINOPSE
.B #include <ftw.h>
.sp
.BI "int ftw (const char *" dir ", int (*" fn ")(const"
.BI "char *" file ", const struct stat *" sb ", int " flag ),
.BI "int " depth );
.sp
.BI "int nftw (const char *" dir ", int (*" fn ")(const"
.BI "char *" file ", const struct stat *" sb ", int " flag ,
.BI "struct FTW *" s ),
.BI "int " depth ", int " flags );
.SH DESCRIO
\fBftw\fP() caminha atravs da rvore de diretrio, comeando do diretrio
\fIdir\fP indicado. Para cada entrada encontrada na rvore, ela chama
\fIfn\fP() com o caminho de diretrio completo da entrada, um ponteiro para a estrutura
.BR stat (2)
da entrada, e um int, cujo valor ser um dos seguintes:
.TP
.B FTW_F
O item  um arquivo normal
.TP
.B FTW_D
O item  um diretrio
.TP
.B FTW_DNR
O item  um diretrio que no pode ser lido
.TP
.B FTW_SL
O item  uma ligao simblica
.TP
.B FTW_NS
'stat' falhou no item que no  uma ligao simblica
.LP
Se o item  uma ligao simblica e 'stat' falhou, XPG4v2 afirma que ele  indefinido se
FTW_NS ou FTW_SL  usado.
.PP
\fBftw\fP() chama recursivamente a si mesmo para atravessar diretrios encontrados, manipulando
um diretrio antes do seus arquivos ou subdiretrios. Para evitar o uso de todos os descritores 
de arquivos do programa, o \fIdepth\fP especifica o nmero de diretrios abertos simultaneamente.
Quando a profundidade  excedida, \fBftw\fP() se tornar mais lenta porque os diretrios tm que
ser fechados e reabertos. \fBftw\fP() usa no mximo um descritor de arquivos para cada nvel na 
hierarquia de arquivos.
.PP
Para parar a caminhada na rvore, \fIfn\fP() retorna um valor diferente de zero; este valor se
tornar o valor de retorno de \fBftw\fP(). Caso contrrio, \fBftw\fP() continuar at que tenha
atravessado a rvore inteira, em cujo caso retornar zero, ou at que ele encontre um erro 
diferente de EACCES (tal como uma falha de
.BR malloc (3)
), em cujo caso retornar \-1.
.PP
Como \fBftw()\fP usa estruturas de dados dinmicas, a nica maneira segura de sair de uma caminhada
na rvore  retornar um valor diferente de zero. Para manipular interrupes, por exemplo, indica que
a interrupo ocorreu e retorna um valor diferente de zero \(emno use
.BR longjmp (3)
a menos que o programa v terminar.

A funo \fBnftw\fP() faz precisamente a mesma coisa que \fBftw\fP(), exceto pelo fato de que 
ela tem um argumento adicional, \fIflags\fP (e chama a funo fornecida com mais um argumento).
Este argumento \fIflags\fP  uma operao OU de zero ou mais das seguintes flags:
.TP
.B FTW_CHDIR
Se setado, faz um
.IR chdir ()
para cada diretrio antes de manipular seu contedo.
.TP
.B FTW_DEPTH
Se setado, faz uma busca primeiro por profundidade, ou seja, chama a funo para o prprio diretrio
somente depois de manipular os contedos do diretrio e seus subdiretrios.
.TP
.B FTW_MOUNT
Se setado, fica dentro do mesmo sistema de arquivos.
.TP
.B FTW_PHYS
Se setado, no segue ligaes simblicas.
(Isto  o que voc quer.)
Se no setado, as ligaes simblicas so seguidas, mas nenhum arquivo  relatado duas vezes.
.LP
Se FTW_PHYS no  setado, mas FTW_DEPTH  setado, ento a funo
.IR fn ()
nunca  chamada para um diretrio que seria um descendente dele mesmo.
.LP
A funo
.IR fn ()
 chamada com quatro argumentos: o caminho de diretrio da entrada relatada, um ponteiro para uma
estrutura 'stat' desta entrada, um inteiro descrevendo seu tipo, e um ponteiro para uma estrutura
FTW. O tipo ser um dos seguintes: FTW_F, FTW_D, FTW_DNR, FTW_SL, FTW_NS ( com o significado acima;
FTW_SL ocorre somente com FTW_PHYS setado) ou
.TP
.B FTW_DP
O item  um diretrio e todos os seus descendentes j foram manipulados. (Isto ocorre
somente com FTW_DEPTH setado.)
.TP
.B FTW_SLN
O item  uma ligao simblica apontando para um arquivo no existente.
(Isto ocorre somente com FTW_PHYS no setado.)
.LP
A estrutura FTW apontada pelo quarto argumento para
.IR fn ()
tem pelo menos os campos
.IR base ,
o offset do nome de arquivo do item no caminho de diretrio dado como primeiro argumento de
.IR fn (),
e
.IR level ,
a profundidade do item em relao ao ponto inicial
(que tem profundidade 0).
.SH NOTAS
A funo
.IR nftw ()
e o uso de FTW_SL com
.IR ftw ()
foram introduzidos em XPG4v2.
Sob Linux, libc4, libc5 e glibc 2.0.6 usaro
FTW_F para todos os objetos (arquivos, ligaes simblicas, fifos, etc)
que podem ser receber um 'stat' mas no so diretrios.
A primeira glibc 2.1 suporta FTW_SL e
.IR nftw ().
.SH "CONFORME"
AES, SVID2, SVID3, XPG2, XPG3, XPG4, XPG4v2.
.SH "VEJA TAMBM"
.BR stat (2)

.SH TRADUO PARA A LNGUA PORTUGUESA
\&\fR\&\f(CWRUBENS DE JESUS NOGUEIRA <darkseid99@usa.net> (traduo)\fR
\&\fR\&\f(CWXXXXXX XX XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (reviso)\fR