Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ statfs(2) — UNIX 2.11BSD

Media Vault

Software Library

Restoration Projects

Artifacts Sought

STATFS(2)  —  Unix Programmer’s Manual

NAME

statfs, fstatfs − get file system statistics

SYNOPSIS

#include <sys/param.h>
#include <sys/mount.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:

 #define MNAMELEN 90       /∗ length of buffer for returned name ∗/
 struct statfs {
short   f_type;           /∗ type of filesystem (see below) ∗/
short   f_flags;          /∗ copy of mount flags ∗/
short   f_bsize;          /∗ fundamental file system block size ∗/
short   f_iosize;         /∗ 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 ∗/
ino_t   f_files;          /∗ total file nodes in file system ∗/
ino_t   f_ffree;          /∗ free file nodes in fs ∗/
u_long  f_fsid[2];        /∗ file system id ∗/
long    f_spare[4];       /∗ spare for later ∗/
char    f_mntonname[MNAMELEN];    /∗ mount point ∗/
char    f_mntfromname[MNAMELEN];  /∗ mounted filesystem ∗/
};
/∗
∗ File system types. - Only UFS is supported so the other types are not
∗ given.
∗/
#defineMOUNT_UFS1/∗ Fast Filesystem ∗/

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

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 of Path is not a directory. 

[EINVAL] path contains a character with the high-order bit set. 

[ENAMETOOLONG] The length of a component of path exceeds 63 characters, or the length of path exceeds 255 characters. 

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

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 or writing to the file system. 

HISTORY

The statfs function first appeared in 4.4BSD. 

4.4 Berkeley Distribution  —  December 26, 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026