Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(2)

chown(2)

creat(2)

link(2)

mknod(2)

pipe(2)

read(2)

time(2)

unlink(2)

utime(2)

write(2)

fs(4)

STATFS(2)  —  Kubota Pacfic Computer Inc. (System Calls)

NAME

statfs, fstatfs − get file system information

SYNOPSIS

#include <sys/types.h>
#include <sys/statfs.h>

int statfs (path, buf, len, fstyp)
char ∗path;
struct statfs ∗buf;
int len, fstyp;

int fstatfs (fildes, buf, len, fstyp)
int fildes;
struct statfs ∗buf;
int len, fstyp;

DESCRIPTION

statfs returns a “generic superblock” describing a file system.  It can be used to acquire information about mounted as well as unmounted file systems, and usage is slightly different in the two cases.  In all cases, buf is a pointer to a structure (described below) which is filled by the system call, and len is the number of bytes of information which the system should return in the structure.  len must be no greater than sizeof (struct statfs) and ordinarily it contains exactly that value; if it holds a smaller value the system fills the structure with that number of bytes.  (This allows future versions of the system to enlarge the structure without invalidating older binary programs.) 

If the file system of interest is currently mounted, path should name a file which resides on that file system.  In this case the file system type is known to the operating system and the fstyp argument must be zero.  For an unmounted file system path must name the block special file containing it and fstyp must contain the (non-zero) file system type.  In both cases read, write, or execute permission of the named file is not required, but all directories listed in the path name leading to the file must be searchable. 

The statfs structure pointed to by buf includes the following members:

shortf_fstyp;/∗ File system type ∗/
shortf_bsize;/∗ Block size ∗/
shortf_frsize;/∗ Fragment size ∗/
longf_blocks;/∗ Total number of blocks ∗/
longf_bfree;/∗ Count of free blocks ∗/
longf_files;/∗ Total number of file nodes ∗/
longf_ffree;/∗ Count of free file nodes ∗/
charf_fname[6];/∗ Volume name ∗/
charf_fpack[6];/∗ Pack name ∗/

fstatfs is similar, except that the file named by path in statfs is instead identified by an open file descriptor filedes obtained from a successful open(2), creat(2), dup(2), fcntl(2), or pipe(2) system call. 

statfs obsoletes ustat(2) and should be used in preference to it in new programs.

statfs and fstatfs fails if one or more of the following are true:

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

­[ENOENT] The named file does not exist. 

­[EACCES] Search permission is denied for a component of the path prefix. 

­[EFAULT] buf or path points to an invalid address. 

­[EBADF] fildes is not a valid open file descriptor. 

­[EINVAL] fstyp is an invalid file system type; path is not a block special file and fstyp is nonzero; len is negative or is greater than sizeof (struct statfs). 

­[ENOLINK] path points to a remote machine, and the link to that machine is no longer active. 

­[EMULTIHOP] Components of path require hopping to multiple remote machines. 

DIAGNOSTICS

Upon successful completion a value of 0 is returned.  Otherwise, a value of −1 is returned and errno is set to indicate the error. 

SEE ALSO

chmod(2), chown(2), creat(2), link(2), mknod(2), pipe(2), read(2), time(2), unlink(2), utime(2), write(2), fs(4). 

September 02, 1992

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