statvfs, fstatvfs - get file system information
int statvfs (const char *path, struct statvfs *buf);
int fstatvfs (int fildes, struct statvfs *buf);
statvfs() returns information about a mounted file system.
fstatvfs() returns similar information about an open file.
The parameters for the statvfs() and fstatvfs() functions are as
path is a pointer to a path name of any file
within the mounted file system.
buf is a pointer to a statvfs structure, which is
where the file system status information is
fildes is a file descriptor for an open file, which
is created with the successful completion of
an open(), creat(), dup(), fcntl(), or pipe()
system call (see open(2), creat(2), dup(2),
fcntl(2), or pipe(2)).
The statvfs structure contains the following members:
ulong f_bsize; /* preferred file system block size */
ulong f_frsize; /* fundamental file system block size */
ulong f_blocks; /* total blocks of f_frsize on file system */
ulong f_size; /* size of file system in f_frsize unit */
ulong f_bfree; /* free blocks */
ulong f_bavail; /* blocks available to non-superuser */
long f_files; /* total file nodes in file system */
long f_ffree; /* free file nodes in file system */
long f_favail; /* file nodes available to non-superuser */
long f_fsid; /* file system ID for file system */
/* type; see sysfs(2) */
char f_basetype[FSTYPSZ]; /* file system type name is null-terminated */
long f_flag; /* bit mask of flags */
long f_namemax /* maximum file name length */
char f_fstr; /* file system specific string */
time_t f_time; /* Last time file system was written */
Hewlett-Packard Company - 1 - HP-UX Release 11i: November 2000
The field f_basetype contains a null-terminated file-system-type name.
The constant [FSTYPSZ] is defined in the header file <<<<statvfs.h>>>>.
The following flags can be returned in the f_flag field:
ST_LARGEFILES File system is enabled for large files.
ST_RDONLY File system is read-only.
ST_NOSUID File system does not support setuid and
ST_EXPORTED File system is exported (NFS).
ST_QUOTA Quotas are enabled on this file system.
statvfs() and fstatvfs() return 0 upon successful completion;
otherwise, they return -1 and set errno to indicate the error.
If statvfs() fails, errno is set to one of the following values:
[EACCES] Search permission is denied for a component
of the path prefix.
[ELOOP] Too many symbolic links are encountered
during path-name translation.
[ENAMETOOLONG] The length of the specified path name exceeds
PATH_MAX bytes, or the length of a component
of the path name exceeds NAME_MAX bytes while
_POSIX_NO_TRUNC is in effect.
[ENOENT] The named file does not exist (for example,
path is null or a component of path does not
[ENOTDIR] A component of the path prefix is not a
If fstatvfs() fails, errno is set to the following value:
[EBADF] fildes is not a valid open file descriptor.
When both statvfs() and fstatvfs() fail, errno is set to one of the
[EFAULT] buf points to an invalid address.
Hewlett-Packard Company - 2 - HP-UX Release 11i: November 2000
[EIO] An I/O error occurred while reading from or
writing to the file system.
df(1M), fstatfs(2), fstatvfs64(2), quotactl(2), stat(2), statfs(2),
statvfs64(2), sysfs(2), ustat(2).
Hewlett-Packard Company - 3 - HP-UX Release 11i: November 2000