Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
STATFS(2)		    BSD	System Calls Manual		     STATFS(2)

     statfs -- get file	system statistics

     #include <sys/param.h>
     #include <sys/mount.h>

     statfs(const char *path, struct statfs *buf);

     fstatfs(int fd, struct statfs *buf);

     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:

     typedef struct fsid { int32_t val[2]; } fsid_t; /*	file system id type */

      *	file system statistics

     #define MFSNAMELEN	16   /*	length of fs type name,	including null */
     #define MNAMELEN	90   /*	length of buffer for returned name */

     struct statfs {
     long    f_spare2;	       /* placeholder */
     long    f_bsize;	       /* fundamental file system block	size */
     long    f_iosize;	       /* 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 */
     uid_t   f_owner;	       /* user that mounted the	filesystem */
     int     f_type;	       /* type of filesystem (see below) */
     int     f_flags;	       /* copy of mount	flags */
     long    f_spare[2];       /* spare	for later */
     char    f_fstypename[MFSNAMELEN];/* fs type name */
     char    f_mntonname[MNAMELEN];    /* mount	point */
     char    f_mntfromname[MNAMELEN];  /* mounted filesystem */
     The flags that may	be returned include:

     MNT_RDONLY	       The filesystem is mounted read-only; Even the super-
		       user may	not write on it.

     MNT_NOEXEC	       Files may not be	executed from the filesystem.

     MNT_NOSUID	       Setuid and setgid bits on files are not honored when
		       they are	executed.

     MNT_NODEV	       Special files in	the filesystem may not be opened.

     MNT_SYNCHRONOUS   All I/O to the filesystem is done synchronously.

     MNT_ASYNCHRONOUS  No filesystem I/O is done synchronously.

     MNT_LOCAL	       The filesystem resides locally.

     MNT_QUOTA	       The filesystem has quotas enabled on it.

     MNT_ROOTFS	       Identifies the root filesystem.

     MNT_EXRDONLY      The filesystem is exported read-only.

     MNT_EXPORTED      The filesystem is exported for both reading and writ-

     MNT_DEFEXPORTED   The filesystem is exported for both reading and writing
		       to any Internet host.

     MNT_EXPORTANON    The filesystem maps all remote accesses to the anony-
		       mous user.

     MNT_EXKERB	       The filesystem is exported with Kerberos	uid mapping.

     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.

     Upon successful completion, a value of 0 is returned.  Otherwise, -1 is
     returned and the global variable errno is set to indicate the error.

     Statfs() fails if one or more of the following are	true:

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

		    The	length of a component of path exceeds 255 characters,
		    or the length of path exceeds 1023 characters.

     [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

     [EFAULT]	    Buf	or path	points to an invalid address.

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

     Fstatfs() fails if	one or more of the following are true:

     [EBADF]	    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.

     The statfs() function first appeared in 4.4BSD.

BSD				 May 24, 1995				   BSD


Want to link to this manual page? Use this URL:

home | help