NAME
statvfs
, statvfs1
,
fstatvfs
, fstatvfs1
—
get file system statistics
LIBRARY
library “libc”
SYNOPSIS
#include
<sys/statvfs.h>
int
statvfs
(const
char *path, struct
statvfs *buf);
int
statvfs1
(const
char *path, struct
statvfs *buf, int
flags);
int
fstatvfs
(int
fd, struct statvfs
*buf);
int
fstatvfs1
(int
fd, struct statvfs
*buf, int
flags);
DESCRIPTION
statvfs
()
and statvfs1
() return information about a mounted file
system. path is the path name of any file within the
mounted file system. buf is a pointer to a
statvfs
structure defined in
statvfs(5).
fstatvfs
()
and
fstatvfs1
()
return the same information about an open file referenced by descriptor
fd.
The
statvfs1
()
and
fstatvfs1
()
functions allow an extra flags argument which can be
ST_WAIT
and ST_NOWAIT
. When
ST_NOWAIT
is specified, then only cached statistics
are returned. This can result in significant savings on non-local file
systems, where gathering statistics involves a network communication.
The
statvfs
()
and fstatvfs
() calls are equivalent to the
respective statvfs1
() and
fstatvfs1
() calls with
ST_WAIT
specified as the flags
argument.
RETURN VALUES
Upon successful completion, a value of 0 is returned. Otherwise, -1 is returned and the global variable errno is set to indicate the error.
ERRORS
statvfs
() and
statvfs1
() fail if one or more of the following are
true:
- [
ENOTDIR
] - A component of the path prefix of path is not a directory.
- [
ENAMETOOLONG
] - The length of a component of path exceeds
{
NAME_MAX
} characters, or the length of path exceeds {PATH_MAX
} 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 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.
fstatvfs
() and
fstatvfs1
() fail if one or more of the following are
true:
- [
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.
SEE ALSO
HISTORY
The statvfs
(),
statvfs1
(), fstatvfs
(), and
fstatvfs1
() functions first appeared in
NetBSD 3.0 to replace the
statfs
() family of functions which first appeared in
4.4BSD.