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)
)
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 filesystems, 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.
)
and
statvfs1()
fail if one or more of the following are true:
ENOTDIR]path
is not a directory.
ENAMETOOLONG]path
exceeds
NAME_MAX
characters, or the length of
path
exceeds
PATH_MAX
characters.
ENOENT]path
does not exist.
EACCES]path.
ELOOP]path.
EFAULT]buf
or
path
points to an invalid address.
EIO]
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]),
statvfs1(),
fstatvfs(),
and
fstatvfs1()
functions first appeared in
NetBSD3.0
to replace
the
statfs()
family of functions which first appeared in
4.4BSD.