statfs

Name

statfs -- get file system statistics

Synopsis

#include <sys/vfs.h>

int statfs(const char *path, 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 follow:

struct statfs {

long f_type; /* type of filesystem (see below) */

long f_bsize; /* optimal transfer block size */

long f_blocks; /* total data blocks in file system */

long f_bfree; /* free blocks in fs */

long f_bavail; /* free blocks avail to non-superuser */

long f_files; /* total file nodes in file system */

long f_ffree; /* free file nodes in fs */

long f_ffree; /* free file nodes in fs */

fsid_t f_fsid; /* file system id */

long f_namelen; /* maximum length of filenames */

long f_spare[6]; /* spare for later */

};

Fields that are undefined for a particular file system are set to 0.

Return Value

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

Errors

ENOTDIR

A component of the path prefix of path is not a directory.

ENAMETOOLONG

path is too long.

ENOENT

The file referred to by path does not exist.

EACCES

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

ELOOP

Too many symbolic links were encountered in translating 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.

ENOMEM

Insufficient kernel memory was available.

ENOSYS

The filesystem path is on does not support statfs.