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)

STATFS(2)                            SysV                            STATFS(2)



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 will be 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 will contain exactly that value;
     if it holds a smaller value, the system will fill the structure with that
     number of bytes.  (This allows future versions of the system to grow the
     structure without invalidating older binary programs.)

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

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

          short  f_fstyp;    /* File system type */
          long   f_bsize;    /* Block size */
          long   f_frsize;   /* Fragment size (if supported) */
          long   f_blocks;   /* Total number of blocks on file system */
          long   f_bfree;    /* Total number of free blocks */
          long   f_files;    /* Total number of file nodes (inodes) */
          long   f_ffree;    /* Total number of free file nodes */
          char   f_fname[6]; /* Volume name */
          char   f_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.

ERRORS
     statfs and fstatfs will fail 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.

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

DIAGNOSTICS
     Upon successful completion a value of 0 is returned.  Otherwise, a value
     of -1 is returned and errno is set as indicated under "Errors."

NOTES
     The following error, not returned under Domain/OS SysV, may be returned
     under other implementations:

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

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