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

FreeBSD Manual Pages


home | help
statvfs(2)			 System	Calls			    statvfs(2)

       statvfs,	fstatvfs - get file system information

       #include	<sys/types.h>
       #include	<sys/statvfs.h>

       int statvfs(const char *restrict	path, struct statvfs *restrict buf);

       int fstatvfs(int	fildes,	struct statvfs *buf);

       The statvfs() function returns a	"generic superblock" describing	a file
       system; it can be used to acquire information about mounted  file  sys-
       tems.   The  buf	argument is a pointer to a structure (described	below)
       that is filled by the function.

       The path	argument should	name a file that resides on that file  system.
       The  file system	type is	known to the operating system. Read, write, or
       execute permission for the named	file is	not required, but all directo-
       ries listed in the path name leading to the file	must be	searchable.

       The statvfs structure pointed to	by buf includes	the following members:

       u_long	   f_bsize;		/* preferred file system block size */
       u_long	   f_frsize;		/* fundamental filesystem block
					   (size if supported) */
       fsblkcnt_t  f_blocks;		/* total # of blocks on	file system
					   in units of f_frsize	*/
       fsblkcnt_t  f_bfree;		/* total # of free blocks */
       fsblkcnt_t  f_bavail;		/* # of	free blocks avail to
					   non-privileged user */
       fsfilcnt_t  f_files;		/* total # of file nodes (inodes) */
       fsfilcnt_t  f_ffree;		/* total # of free file	nodes */
       fsfilcnt_t  f_favail;		/* # of	inodes avail to
					   non-privileged user*/
       u_long	   f_fsid;		/* file	system id (dev for now)	*/
       char	   f_basetype[FSTYPSZ];	/* target fs type name,
					   null-terminated */
       u_long	   f_flag;		/* bit mask of flags */
       u_long	   f_namemax;		/* maximum file	name length */
       char	   f_fstr[32];		/* file	system specific	string */
       u_long	   f_filler[16];	/* reserved for	future expansion */

       The  f_basetype	member	contains  a null-terminated FSType name	of the
       mounted target.

       The following values can	be returned in the f_flag field:

       ST_RDONLY    0x01    /* read-only file system */
       ST_NOSUID    0x02    /* does not	support	setuid/setgid semantics	*/
       ST_NOTRUNC   0x04    /* does not	truncate file names longer than
			       NAME_MAX	*/

       The fstatvfs() function is similar to statvfs(),	except that  the  file
       named  by  path	in statvfs() is	instead	identified by an open file de-
       scriptor	fildes obtained	from a successful open(2),  creat(2),  dup(2),
       fcntl(2), or pipe(2) function call.

       Upon  successful	 completion,  0	is returned. Otherwise,	-1 is returned
       and errno is set	to indicate the	error.

       The statvfs() and fstatvfs() functions will fail	if:

       EOVERFLOW	       One of the values to be returned	cannot be rep-
			       resented	 correctly in the structure pointed to
			       by buf.

       The statvfs() function will fail	if:

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

       EFAULT		       The  path  or buf argument points to an illegal

       EINTR		       A signal	was caught during the execution	of the
			       statvfs() function.

       EIO		       An  I/O	error  occurred	while reading the file

       ELOOP		       Too many	symbolic  links	 were  encountered  in
			       translating path.

       ENAMETOOLONG	       The length of a path component exceeds NAME_MAX
			       characters, or the length of path  The  exceeds
			       PATH_MAX	characters.

       ENOENT		       Either  a  component  of	the path prefix	or the
			       file referred to	by path	does not exist.

       ENOLINK		       The path	argument points	to  a  remote  machine
			       and  the	 link to that machine is no longer ac-

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

       The fstatvfs() function will fail if:

       EBADF		       The  fildes  argument  is  not an open file de-

       EFAULT		       The buf argument	points to an illegal address.

       EINTR		       A signal	was caught during the execution	of the
			       fstatvfs() function.

       EIO		       An  I/O	error  occurred	while reading the file

       The statvfs() and fstatvfs() functions have transitional	interfaces for
       64-bit file offsets.  See lf64(5).

       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Interface Stability	     |Standard			   |

       chmod(2),  chown(2),  creat(2),	dup(2),	 fcntl(2),  link(2), mknod(2),
       open(2),	pipe(2), read(2), time(2), unlink(2), utime(2),	write(2),  at-
       tributes(5), lf64(5), standards(5)

       The values returned for f_files,	f_ffree, and f_favail may not be valid
       for NFS mounted file systems.

SunOS 5.10			  22 Mar 2004			    statvfs(2)


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

home | help