OpenBSD manual page server

Manual Page Search Parameters

STATVFS(3) Library Functions Manual STATVFS(3)

statvfs, fstatvfsget file system statistics

#include <sys/statvfs.h>

int
statvfs(const char *path, struct statvfs *buf);

int
fstatvfs(int fd, struct statvfs *buf);

() returns information about a mounted file system. path is the path name of any file within the mounted file system. buf is a pointer to a statvfs structure defined as follows:

struct statvfs {
        unsigned long f_bsize;    /* file system block size */
        unsigned long f_frsize;   /* fundamental file system block size */
        fsblkcnt_t    f_blocks;   /* number of blocks (unit f_frsize) */
        fsblkcnt_t    f_bfree;    /* free blocks in file system */
        fsblkcnt_t    f_bavail;   /* free blocks for non-root */
        fsfilcnt_t    f_files;    /* total file inodes */
        fsfilcnt_t    f_ffree;    /* free file inodes */
        fsfilcnt_t    f_favail;   /* free file inodes for non-root */
        unsigned long f_fsid;     /* file system id */
        unsigned long f_flag;     /* bit mask of f_flag values */
        unsigned long f_namemax;  /* maximum filename length */
};

#define ST_RDONLY     0x0001UL    /* read-only filesystem */
#define	ST_NOSUID     0x0002UL    /* nosuid flag set */

The fields of type fsblkcnt_t are reported in units of f_frsize.

() returns the same information about an open file referenced by descriptor fd.

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

statvfs() fails if one or more of the following are true:

[]
A component of the path prefix of path is not a directory.
[]
A component of a pathname exceeded NAME_MAX characters, or an entire pathname (including the terminating NUL) exceeded PATH_MAX bytes.
[]
The file referred to by path does not exist.
[]
Search permission is denied for a component of the path prefix of path.
[]
Too many symbolic links were encountered in translating path.
[]
buf or path points to an invalid address.
[]
An I/O error occurred while reading from or writing to the file system.

fstatvfs() fails if one or more of the following are true:

[]
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.

df(1), mount(2), stat(2), statfs(2)

The statvfs() and fstatvfs() functions conform to IEEE Std 1003.1-2001 (“POSIX.1”).

The statvfs() and fstatvfs() functions first appeared in OpenBSD 4.4.

February 11, 2022 OpenBSD-current