File: statfs.2

package info (click to toggle)
manpages-es 1.55-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,472 kB
  • ctags: 6
  • sloc: sh: 1,349; makefile: 63
file content (253 lines) | stat: -rw-r--r-- 7,478 bytes parent folder | download | duplicates (4)
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
.\" Copyright (c) 1989, 1991 The Regents of the University of California.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"     This product includes software developed by the University of
.\"     California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\"     @(#)statfs.2    6.5 (Berkeley) 7/23/91
.\"
.\" Modified Sat Jul 24 11:27:31 1993 by Rik Faith (faith@cs.unc.edu)
.\" Translated 6 Feb 1998 by Vicente Pastor Gómez <VPASTORG@santandersupernet.com , vicpastor@hotmail.com>
.\" Translation revised 26 April 1998 by Juan Piernas <piernas@dif.um.es>
.\"
.TH STATFS 2 "21 agosto 1997" "Linux 2.0.30" "Manual del Programador de Linux"
.SH NOMBRE
statfs, fstatfs \- obtiene estadísticas del sistema de ficheros
.SH SINOPSIS
.B #include <sys/vfs.h>
.sp
.BI "int statfs(const char *" path ", struct statfs *" buf );
.br
.BI "int fstatfs(int " fd ", struct statfs *" buf );
.SH DESCRIPCIÓN
.B statfs
devuelve información de un sistema de ficheros montado.
.I path
el el camino de cualquier fichero en el sistema de ficheros montado.
.I buf
es un puntero a una estructura
.I statfs
definida como sigue:

.RS
.nf
struct statfs {
   long    f_type;     /* tipo sistema ficheros (ver bajo) */
   long    f_bsize;    /* tamaño óptimo de bloque
                          de transferencia */
   long    f_blocks;   /* total de bloques de datos en el sistema
                          de ficheros */
   long    f_bfree;    /* bloques libres en el sf */
   long    f_bavail;   /* bloques libres disponibles para
                          no-superusuarios */
   long    f_files;    /* total de nodos de ficheros en el sf */
   long    f_ffree;    /* nodos de ficheros libres en el sf */
   fsid_t  f_fsid;     /* id del sistema de ficheros */
   long    f_namelen;  /* longitud máxima de nombre de ficheros */
   long    f_spare[6]; /* de sobra, para más tarde */
};
.fi
.RE
.PP
Tipos de sistema de ficheros:
.RS
.nf
linux/affs_fs.h:
   AFFS_SUPER_MAGIC      0xADFF
linux/efs_fs.h:
   EFS_SUPER_MAGIC       0x00414A53
linux/ext_fs.h:
   EXT_SUPER_MAGIC       0x137D
linux/ext2_fs.h:
   EXT2_OLD_SUPER_MAGIC  0xEF51
   EXT2_SUPER_MAGIC      0xEF53
linux/hpfs_fs.h:
   HPFS_SUPER_MAGIC      0xF995E849
linux/iso_fs.h:
   ISOFS_SUPER_MAGIC     0x9660
linux/minix_fs.h:
   MINIX_SUPER_MAGIC     0x137F /* minix orig.*/
   MINIX_SUPER_MAGIC2    0x138F /* minix 30 carac.*/
   MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */
   MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, nombres 30 carac. */
linux/msdos_fs.h:
   MSDOS_SUPER_MAGIC     0x4d44
linux/ncp_fs.h:
   NCP_SUPER_MAGIC       0x564c
linux/nfs_fs.h:
   NFS_SUPER_MAGIC       0x6969
linux/proc_fs.h:
   PROC_SUPER_MAGIC      0x9fa0
linux/smb_fs.h:
   SMB_SUPER_MAGIC       0x517B
linux/sysv_fs.h:
   XENIX_SUPER_MAGIC     0x012FF7B4
   SYSV4_SUPER_MAGIC     0x012FF7B5
   SYSV2_SUPER_MAGIC     0x012FF7B6
   COH_SUPER_MAGIC       0x012FF7B7
linux/ufs_fs.h:
   UFS_MAGIC             0x00011954
linux/xfs_fs.h:
   XFS_SUPER_MAGIC       0x58465342
linux/xia_fs.h:
   _XIAFS_SUPER_MAGIC    0x012FD16D

.fi
.RE
.PP
Nadie sabe lo que
.I f_fsid
se supone que contiene (vea más abajo).
.PP
Los campos no definidos para un sistema de ficheros particular se ponen a 0.
.B fstatfs
devuelve la misma información sobre un fichero abierto referenciado por
el descriptor
.IR fd .
.SH "VALOR DEVUELTO"
Si hubo éxito se devuelve cero. Si hubo error, se devuelve \-1, y
.I errno
es actualizado apropiadamente.
.SH ERRORES
Para
.BR statfs :
.TP
.B ENOTDIR
Un componente del camino
.I path
no es un directorio.
.TP
.B ENAMETOOLONG
.I path
es demasiado largo.
.TP
.B ENOENT
El fichero al que se refiere
.I path
no existe.
.TP
.B EACCES
El permiso de búsqueda se deniega para un componente del camino
.IR path .
.TP
.B ELOOP
Se encontraron demasiados enlaces simbólicos al traducir
.IR path .
.TP
.B EFAULT
.I buf
o
.I path
apuntan a una dirección inválida.
.TP
.B EIO
Ocurrió un error de E/S mientras se leía o escribía en el sistema
de ficheros.
.TP
.B ENOMEM
No había suficiente memoria disponible en el núcleo.
.TP
.B ENOSYS
El sistema de ficheros sobre el que se encuentra
.I path
no soporta
.BR statfs .
.PP
Para
.BR fstatfs :
.TP
.B EBADF
.I fd
no es un descriptor de fichero válido.
.TP
.B EFAULT
.I buf
apunta a una dirección inválida.
.TP
.B EIO
Ocurrió un error de E/S mientras se leía o escribía en el sistema
de ficheros.
.TP
.B ENOSYS
El sistema de ficheros sobre el que está abierto
.I fd
no soporta
.BR statfs .
.SH "CONFORME A"
La versión de Linux de
.B statfs
está inspirada en la de 4.4BSD
(aunque no usan la misma estructura).
.SS f_fsid
Solaris y POSIX 1003.1-2001 poseen una llamada al sistema
.I statvfs
que devuelve una estructura
.B "statvfs"
(definida en
.IR "<sys/statvfs.h>" )
con un campo
.IR f_fsid
de tipo
.B "unsigned long" .
Linux, SunOS, HPUX y 4.4BSD poseen una llamada al sistema
.I statfs
que devuelve una estructura
.B "statfs"
(definida en
.IR "<sys/vfs.h>" )
con un campo
.IR f_fsid
de tipo
.B fsid_t ,
donde
.I fsid_t
está definido como
.BR "struct { int val[2]; }" .
Lo mismo se aplica para FreeBSD, salvo que utiliza el fichero de cabecera
.IR "<sys/mount.h>" .

La idea general es que
.I f_fsid
contenga información aleatoria de manera que el par
.RI ( f_fsid , ino )
determine unívocamente un fichero.
Algunos SOs usan (una variante de) el número de dispositivo, o el número de dispositivo
combinado con el tipo de sistema de ficheros.
Muchos SOs restringen el acceso al campo
.I f_fsid
solamente al superusuario (poniéndolo a cero para aquellos usuarios sin privilegios),
ya que este campo es usado en el manejo de ficheros del sistema de ficheros
cuando es exportado mediante NFS, y conceder acceso a él es un problema de seguridad.
.LP
En algunos SOs
.I fsid
puede ser usado como segundo parámetro en la
llamada al sistema
.I sysfs().
.SH "VÉASE TAMBIÉN"
.BR stat (2)