Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

STATFS(2)  —  SYSTEM CALLS

NAME

statfs, fstatfs − get file system statistics

SYNOPSIS

#include <sys/vfs.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:

typedef struct {
longval[2];
} fsid_t;
struct statfs {
longf_type; /∗ type of info, zero for now ∗/
longf_bsize;/∗ fundamental file system block size ∗/
longf_blocks;/∗ total blocks in file system ∗/
longf_bfree;/∗ free blocks ∗/
longf_bavail;/∗ free blocks available to non-super-user ∗/
longf_files;/∗ total file nodes in file system ∗/
longf_ffree;/∗ free file nodes in fs ∗/
fsid_tf_fsid; /∗ file system id ∗/
longf_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 VALUES

statfs() and fstatfs() return:

0 on success. 

−1 on failure and set errno to indicate the error. 

ERRORS

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

EACCES Search permission is denied for a component of the path prefix of 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. 

ELOOP Too many symbolic links were encountered in translating path.

ENAMETOOLONG The length of the path argument exceeds {PATH_MAX}. 

A pathname component is longer than {NAME_MAX} (see sysconf(2V)) while {_POSIX_NO_TRUNC} is in effect (see pathconf(2V)). 

ENOENT The file referred to by path does not exist. 

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

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

BUGS

The NFS revision 2 protocol does not permit the number of free files to be provided to the client; thus, when statfs() or fstatfs() are done on a file on an NFS file system, f_files and f_ffree are always −1. 

Sun Release 4.1  —  Last change: 21 January 1990

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