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.