STATFS(2) — SYSTEM CALLS
NAME
statfs, fstatfs − get file system statistics
SYNOPSIS
#include <sys/vfs.h>
int statfs(path, buf)
char ∗path;
struct statfs ∗buf;
int fstatfs(fd, buf)
int fd;
struct statfs ∗buf;
DESCRIPTION
statfs() returns information about a mounted file system. path is the path name of any file within the mounted filesystem. buf is a pointer to a statfs() structure defined as follows:
typedef struct {
longval[2];
} fsid_t;
struct statfs {
longf_type; /∗ type of info, zero for now ∗/
longf_bsize;/∗ fundamental file system block size ∗/
longf_blocks;/∗ total blocks in file system ∗/
longf_bfree;/∗ free blocks ∗/
longf_bavail;/∗ free blocks available to non-super-user ∗/
longf_files;/∗ total file nodes in file system ∗/
longf_ffree;/∗ free file nodes in fs ∗/
fsid_tf_fsid; /∗ file system id ∗/
longf_spare[7];/∗ spare for later ∗/
};
Fields that are undefined for a particular file system are set to −1. fstatfs() returns the same information about an open file referenced by descriptor fd.
RETURN VALUES
statfs() and fstatfs() return:
0 on success.
−1 on failure and set errno to indicate the error.
ERRORS
statfs() fails if one or more of the following are true:
EACCES Search permission is denied for a component of the path prefix of 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.
ELOOP Too many symbolic links were encountered in translating path.
ENAMETOOLONG The length of the path argument exceeds {PATH_MAX}.
A pathname component is longer than {NAME_MAX} (see sysconf(2V)) while {_POSIX_NO_TRUNC} is in effect (see pathconf(2V)).
ENOENT The file referred to by path does not exist.
ENOTDIR A component of the path prefix of path is not a directory.
fstatfs() fails 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 the file system.
BUGS
The NFS revision 2 protocol does not permit the number of free files to be provided to the client; thus, when statfs() or fstatfs() are done on a file on an NFS file system, f_files and f_ffree are always −1.
Sun Release 4.1 — Last change: 21 January 1990