statvfs(2) statvfs(2)
NAME
statvfs, fstatvfs - get file system information
SYNOPSIS
#include <sys/types.h>
#include <sys/statvfs.h>
int statvfs (const char *path, struct statvfs *buf);
int fstatvfs (int fildes, struct statvfs *buf);
DESCRIPTION
statvfs returns descriptive information about a mounted file
system containing the file referenced by path. buf is a
pointer to a structure (described below) that is filled by
the system call.
path must name a file that resides on the file system for
which information is desired. Read, write, or execute per-
mission for the named file is not required, but all direc-
tories listed in the path name leading to the file must be
searchable.
The statvfs structure pointed to by buf includes the follow-
ing members:
ulong fbsize; /* preferred file system block size */
ulong ffrsize; /* fundamental filesystem block size */
ulong fblocks; /* total # of blocks on file system
in units of ffrsize */
ulong fbfree; /* total # of free blocks */
ulong fbavail; /* # of free blocks avail to
non-superuser */
ulong ffiles; /* total # of file nodes (inodes) */
ulong fffree; /* total # of free file nodes */
ulong ffavail; /* # of inodes avail to
non-superuser */
ulong ffsid; /* file system id (dev for now) */
char fbasetype[FSTYPSZ]; /* target fs type name,
null-terminated */
ulong fflag; /* bit mask of flags */
ulong fnamemax; /* maximum file name length */
char ffstr[32]; /* file system specific string */
fbasetype contains the null-terminated file system type
name of the mounted target.
The following flags can be returned in the fflag field:
STRDONLY 0x01 /* read-only file system */
STNOSUID 0x02 /* does not support setuid/setgid
semantics */
Page 1 CX/UX Programmer's Reference Manual
statvfs(2) statvfs(2)
STNOTRUNC 0x04 /* does not truncate file names
longer than {NAMEMAX} */
The statvfs structure, the constant FSTYPSZ, and the flag
values are all defined in the header file <sys/statvfs.h>.
fstatvfs is similar to statvfs, except that the file named
by path in statvfs is instead identified by an open file
descriptor fildes obtained from a successful open, creat,
dup, fcntl, or pipe system call.
statvfs fails if one or more of the following are true:
EACCES Search permission is denied on a component of
the path prefix.
EFAULT path or buf points outside the process's
allocated address space.
EINTR A signal was caught during statvfs execution.
EIO An I/O error occurred while reading the file
system.
ELOOP Too many symbolic links were encountered in
translating path.
EMULTIHOP Components of path require hopping to multi-
ple remote machines and file system type does
not allow it.
ENAMETOOLONG The length of a path component exceeds
{NAMEMAX} characters, or the length of path
exceeds {PATHMAX} characters.
ENOENT Either a component of the path prefix or the
file referred to by path does not exist.
ENOLINK path points to a remote machine and the link
to that machine is no longer active.
ENOTDIR A component of the path prefix of path is not
a directory.
fstatvfs fails if one or more of the following are true:
EFAULT buf points to an invalid address.
EBADF fildes is not an open file descriptor.
EINTR A signal was caught during fstatvfs execu-
tion.
Page 2 CX/UX Programmer's Reference Manual
statvfs(2) statvfs(2)
EIO An I/O error occurred while reading the file
system.
DIAGNOSTICS
Upon successful completion a value of 0 is returned. Other-
wise, a value of -1 is returned and errno is set to indicate
the error.
SEE ALSO
chmod(2), chown(2), creat(2), link(2), mknod(2), pipe(2),
read(2), time(2), unlink(2), utime(2), write(2).
Page 3 CX/UX Programmer's Reference Manual