Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ statfs(S) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chmod(S)

chown(S)

creat(S)

filesystem(FP)

link(S)

mknod(S)

pipe(S)

read(S)

time(S)

unlink(S)

utime(S)

write(S)


 statfs(S)                      6 January 1993                      statfs(S)


 Name

    statfs, fstatfs - get file system information

 Syntax


    cc  . . .  -lc


    #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

    The statfs system call 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 grow
    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:

       short   f_fstyp;        /* File system type */
       long    f_bsize;        /* Block size */
       long    f_frsize;       /* Fragment size */
       long    f_blocks;       /* Total number of blocks */
       long    f_bfree;        /* Count of free blocks */
       long    f_files;        /* Total number of file nodes */
       long    f_ffree;        /* Count of free file nodes */
       char    f_fname[6];     /* Volume name */
       char    f_fpack[6];     /* Pack name */

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

    The statfs system call obsoletes ustat(S) and should be used in prefer-
    ence to it in new programs.

 Return value

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

 Diagnostics

    The statfs and fstatfs system calls fails if one or more of the following
    is true:

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

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

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

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

    [EMULTIHOP]    Components of path require hopping to multiple remote ma-
                   chines.

    [ENOENT]       The named file does not exist.

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

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


 See also

    chmod(S), chown(S), creat(S), filesystem(FP), link(S), mknod(S), pipe(S),
    read(S), time(S), unlink(S), utime(S), write(S)

 Standards conformance

    statfs and fstatfs are not part of any currently supported standard; they
    are an extension of AT&T System V provided by the Santa Cruz Operation.


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