NAME

     statfs, fstatfs - get file system statistics


SYNOPSIS

     #include <sys/vfs.h>

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


DESCRIPTION

     statfs returns information  about  a  mounted  file  system.
     path  is  the  path  name  of  any  file  within the mounted
     filesystem.  buf is a pointer to a statfs structure  defined
     as follows:

          struct statfs {
             long    f_type;     /* type of filesystem (see below) */
             long    f_bsize;    /* optimal transfer block size */
             long    f_blocks;   /* total data blocks in file system */
             long    f_bfree;    /* free blocks in fs */
             long    f_bavail;   /* free blocks avail to non-superuser */
             long    f_files;    /* total file nodes in file system */
             long    f_ffree;    /* free file nodes in fs */
             fsid_t  f_fsid;     /* file system id */
             long    f_namelen;  /* maximum length of filenames */
             long    f_spare[6]; /* spare for later */
          };

          File system types:

          linux/affs_fs.h:
             AFFS_SUPER_MAGIC      0xADFF
          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 /* orig. minix */
             MINIX_SUPER_MAGIC2    0x138F /* 30 char minix */
             MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */
             MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 char names */
          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/xia_fs.h:
             _XIAFS_SUPER_MAGIC    0x012FD16D

     Fields that are undefined for a particular file  system  are
     set  to  -1.   fstatfs returns the same information about an
     open file referenced by descriptor fd.


RETURN VALUE

     On success, zero is returned.  On error, -1 is returned, and
     errno is set appropriately.


ERRORS

     For statfs:

     ENOTDIR A component of the path prefix  of  path  is  not  a
             directory.

     ENAMETOOLONG
             path is too long.

     ENOENT  The file referred to by path does not exist.

     EACCES  Search permission is denied for a component  of  the
             path prefix of path.

     ELOOP   Too  many  symbolic  links   were   encountered   in
             translating path.

     EFAULT  Buf or path points to an invalid address.

     EIO     An I/O error occurred while reading from or  writing
             to the file system.

     ENOMEM  Insufficient kernel memory was available.

     ENOSYS  The filesystem path is on does not support statfs.

     For fstatfs:

     EBADF   fd is not a valid open file descriptor.

     EFAULT  buf points to an invalid address.

     EIO     An I/O error occurred while reading from or  writing
             to the file system.

     ENOSYS  The filesystem  fd  is  open  on  does  not  support
             statfs.


CONFORMING TO

     4.4BSD.


SEE ALSO

     stat(2)