STATFS(2)

NAME
statfs - get file system statistics

SYNOPSIS
#include <sys/vfs.h>

statfs(path, buf)
char *path;
struct statfs *buf;

fstatfs(fd, buf)
int fd;
struct statfs *buf;

DESCRIPTION
Statfs returns information about a mounted file system. Path is the pathname of any file within the mounted filesystem. Buf is a pointer to a statfs structure defined as follows: typedef struct {
    long    val[2];
} fsid_t;

struct statfs {
    long    f_type;     /* type of info, zero for now */
    long    f_bsize;    /* fundamental file system block size */
    long    f_blocks;    /* total blocks in file system */
    long    f_bfree;    /* free blocks */
    long    f_bavail;    /* free blocks available to non-superuser */
    long    f_files;    /* total file nodes in file system */
    long    f_ffree;    /* free file nodes in fs */
    fsid_t    f_fsid;     /* file system id */
    long    f_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 VALUE
Upon successful completion, a value of 0 is returned. Otherwise, -1 is returned and the global variable errno is set to indicate the error.

ERRORS
Statfs fails if one or more of the following are true:

[ENOTDIR]
    A component of the path prefix is not a directory.

[EPERM]
    The pathname contains a character with the high-order bit set.

[ENAMETOOLONG]
    The pathname was too long.

[ENOENT]
    The named file does not exist.

[EACCES]
    Search permission is denied for a component of the path prefix.

[EFAULT]
    Buf or path points to an invalid address.

[ELOOP]
    Too many symbolic links were encountered in translating the pathname.

[EIO]
    An I/O error occurred while reading from or writing to the file system.

Fstatfs fails if one or both 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 or writing to the file system.