fstatfs -- get file system statistics


#include <sys/vfs.h>

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


fstatfs returns information about a mounted file system. fd is the open file descriptor of any file within the mounted filesystem. buf is a pointer to a statfs structure defined as follows:

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 */

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.



fd is not a valid open file descriptor.


buf points to an invalid address.


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


The filesystem fd is open on does not support statfs.