Provided by: manpages-es_1.55-9_all bug

NOMBRE

       statfs, fstatfs - obtiene estadísticas del sistema de ficheros

SINOPSIS

       #include <sys/vfs.h>

       int statfs(const char *path, struct statfs *buf);
       int fstatfs(int fd, struct statfs *buf);

DESCRIPCIÓN

       statfs devuelve información de un sistema de ficheros montado.  path el
       el camino de cualquier fichero en el sistema de ficheros montado.   buf
       es un puntero a una estructura statfs definida como sigue:

              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 */
              };

       Tipos de sistema de ficheros:
              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

       Nadie sabe lo que f_fsid se supone que contiene (vea más abajo).

       Los campos no definidos para un sistema de ficheros particular se ponen
       a 0.  fstatfs devuelve la misma información sobre  un  fichero  abierto
       referenciado por el descriptor fd.

VALOR DEVUELTO

       Si  hubo éxito se devuelve cero. Si hubo error, se devuelve -1, y errno
       es actualizado apropiadamente.

ERRORES

       Para statfs:

       ENOTDIR
              Un componente del camino path no es un directorio.

       ENAMETOOLONG
              path es demasiado largo.

       ENOENT El fichero al que se refiere path no existe.

       EACCES El permiso de búsqueda se deniega para un componente del  camino
              path.

       ELOOP  Se encontraron demasiados enlaces simbólicos al traducir path.

       EFAULT buf o path apuntan a una dirección inválida.

       EIO    Ocurrió  un  error  de  E/S  mientras  se  leía o escribía en el
              sistema de ficheros.

       ENOMEM No había suficiente memoria disponible en el núcleo.

       ENOSYS El sistema de ficheros sobre el que se encuentra path no soporta
              statfs.

       Para fstatfs:

       EBADF  fd no es un descriptor de fichero válido.

       EFAULT buf apunta a una dirección inválida.

       EIO    Ocurrió  un  error  de  E/S  mientras  se  leía o escribía en el
              sistema de ficheros.

       ENOSYS El sistema de ficheros sobre el que está abierto fd  no  soporta
              statfs.

CONFORME A

       La versión de Linux de statfs está inspirada en la de 4.4BSD (aunque no
       usan la misma estructura).

   f_fsid
       Solaris y POSIX 1003.1-2001 poseen una llamada al sistema  statvfs  que
       devuelve  una  estructura  statvfs (definida en <sys/statvfs.h>) con un
       campo f_fsid de tipo unsigned long  .   Linux,  SunOS,  HPUX  y  4.4BSD
       poseen una llamada al sistema statfs que devuelve una estructura statfs
       (definida en <sys/vfs.h>) con un campo f_fsid de tipo  fsid_t  ,  donde
       fsid_t  está  definido como struct { int val[2]; }.  Lo mismo se aplica
       para FreeBSD, salvo que utiliza el fichero de cabecera <sys/mount.h>.

       La idea general es que f_fsid contenga información aleatoria de  manera
       que el par (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  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.

       En algunos SOs fsid puede  ser  usado  como  segundo  parámetro  en  la
       llamada al sistema sysfs().

VÉASE TAMBIÉN

       stat(2)