NAME
statvfs,
statvfs1,
fstatvfs,
fstatvfs1 —
get file system statistics
LIBRARY
Standard C Library (libc, -lc)
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
statvfs(5)
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.