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

FreeBSD Manual Pages

  
 
  

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

NAME
     statfs -- get file	system statistics

LIBRARY
     Standard C	Library	(libc, -lc)

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

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

     int
     fstatfs(int fd, struct statfs *buf);

DESCRIPTION
     The statfs() system call returns information about	a mounted file system.
     The path argument is the path name	of any file within the mounted file
     system.  The buf argument is a pointer to a statfs	structure defined as
     follows:

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

     /*
      *	filesystem statistics
      */

     #define MFSNAMELEN	     16		     /*	length of type name including null */
     #define MNAMELEN	     88		     /*	size of	on/from	name bufs */
     #define STATFS_VERSION  0x20030518	     /*	current	version	number */

     struct statfs {
     uint32_t f_version;	     /*	structure version number */
     uint32_t f_type;		     /*	type of	filesystem */
     uint64_t f_flags;		     /*	copy of	mount exported flags */
     uint64_t f_bsize;		     /*	filesystem fragment size */
     uint64_t f_iosize;		     /*	optimal	transfer block size */
     uint64_t f_blocks;		     /*	total data blocks in filesystem	*/
     uint64_t f_bfree;		     /*	free blocks in filesystem */
     int64_t  f_bavail;		     /*	free blocks avail to non-superuser */
     uint64_t f_files;		     /*	total file nodes in filesystem */
     int64_t  f_ffree;		     /*	free nodes avail to non-superuser */
     uint64_t f_syncwrites;	     /*	count of sync writes since mount */
     uint64_t f_asyncwrites;	     /*	count of async writes since mount */
     uint64_t f_syncreads;	     /*	count of sync reads since mount	*/
     uint64_t f_asyncreads;	     /*	count of async reads since mount */
     uint64_t f_spare[10];	     /*	unused spare */
     uint32_t f_namemax;	     /*	maximum	filename length	*/
     uid_t     f_owner;		     /*	user that mounted the filesystem */
     fsid_t    f_fsid;		     /*	filesystem id */
     char      f_charspare[80];		 /* spare string space */
     char      f_fstypename[MFSNAMELEN]; /* filesystem type name */
     char      f_mntfromname[MNAMELEN];	 /* mounted filesystem */
     char      f_mntonname[MNAMELEN];	 /* directory on which mounted */
     };

     The flags that may	be returned include:

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

     MNT_NOEXEC	      Files may	not be executed	from the file system.

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

     MNT_SYNCHRONOUS  All I/O to the file system is done synchronously.

     MNT_ASYNC	      No file system I/O is done synchronously.

     MNT_SOFTDEP      Soft updates being done (see ffs(7)).

     MNT_GJOURNAL     Journaling with gjournal is enabled (see gjournal(8)).

     MNT_SUIDDIR      Special handling of SUID bit on directories.

     MNT_UNION	      Union with underlying file system.

     MNT_NOSYMFOLLOW  Symbolic links are not followed.

     MNT_NOCLUSTERR   Read clustering is disabled.

     MNT_NOCLUSTERW   Write clustering is disabled.

     MNT_MULTILABEL   Mandatory	Access Control (MAC) support for individual
		      objects (see mac(4)).

     MNT_ACLS	      Access Control List (ACL)	support	enabled.

     MNT_LOCAL	      The file system resides locally.

     MNT_QUOTA	      The file system has quotas enabled on it.

     MNT_ROOTFS	      Identifies the root file system.

     MNT_EXRDONLY     The file system is exported read-only.

     MNT_NOATIME      Updating of file access times is disabled.

     MNT_USER	      The file system has been mounted by a user.

     MNT_EXPORTED     The file system is exported for both reading and writ-
		      ing.

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

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

     MNT_EXKERB	      The file system is exported with Kerberos	uid mapping.

     MNT_EXPUBLIC     The file system is exported publicly (WebNFS).

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

RETURN VALUES
     Upon successful completion, the value 0 is	returned; otherwise the
     value -1 is returned and the global variable errno	is set to indicate the
     error.

ERRORS
     The statfs() system call fails if one or more of the following are	true:

     [ENOTDIR]		A component of the path	prefix of path is not a	direc-
			tory.

     [ENAMETOOLONG]	The length of a	component of path exceeds 255 charac-
			ters, 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 translat-
			ing path.

     [EFAULT]		The buf	or path	argument points	to an invalid address.

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

     The fstatfs() system call fails if	one or more of the following are true:

     [EBADF]		The fd argument	is not a valid open file descriptor.

     [EFAULT]		The buf	argument points	to an invalid address.

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

SEE ALSO
     fhstatfs(2)

HISTORY
     The statfs() system call first appeared in	4.4BSD.

BSD			       November	1, 2006				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | ERRORS | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fstatfs&sektion=2&manpath=FreeBSD+11.3-RELEASE+and+Ports>

home | help