Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought



  STAT(2)                                                   STAT(2)



  NAME
       stat, fstat, lstat - get file status

  SYNOPSIS
       #include <sys/types.h>
       #include <sys/stat.h>

       int stat (path, buf)
       char *path;
       struct stat *buf;

       int fstat (fildes, buf)
       int fildes;
       struct stat *buf;

       int lstat (path, buf)
       char *path;
       struct stat *buf;

  DESCRIPTION
       Path points to a path name naming a file.  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.  stat obtains information about the
       named file.

       Note that in a Remote File Sharing environment, the
       information returned by stat depends upon the user/group
       mapping set up between the local and remote computers. [See
       idload(1M)].

       Lstat is like stat except where the named file is a symbolic
       link, in which case lstat returns information about the link
       itself, while stat returns information about the file the
       link references.

       Fstat obtains information about an open file known by the
       file descriptor fildes, obtained from a successful open,
       creat, dup, fcntl, or pipe system call.



  Page 1                                                   May 1989


















  STAT(2)                                                   STAT(2)



       Buf is a pointer to a stat structure into which information
       is placed concerning the file.

       The contents of the structure pointed to by buf include the
       following members:
            mode_t  st_mode;    /* File mode [see mknod(2)] */
            ino_t   st_ino;     /* Inode number */
            dev_t   st_dev;     /* ID of device containing */
                                /* a directory entry for this file
            */
            dev_t   st_rdev;    /* ID of device */
                                /* This entry is defined only for
            */
                                /* character special or block
            special files */
            init    st_nlink;   /* Number of links */
            uid_t   st_uid;     /* User ID of the file's owner */
            gid_t   st_gid;     /* Group ID of the file's group */
            off_t   st_size;    /* File size in bytes */
            time_t  st_atime;   /* Time of last access */
            time_t  st_ausec;
            time_t  st_mtime;   /* Time of last data modification
            */
            time_t  st_musec;
            time_t  st_ctime;   /* Time of last file status change
            */
            time_t  st_cusec;   /* Times measured in seconds and
                                /* microseconds since */
                                /* 00:00:00 GMT, Jan. 1, 1970 */

       stmode   The mode of the file as described in the mknod(2)
                 system call.

       stino    This field uniquely identifies the file in a given
                 file system.  The pair st_ino and st_dev uniquely
                 identifies regular files.

       stdev    This field uniquely identifies the file system
                 that contains the file.  Its value may be used as
                 input to the ustat(2) system call to determine


  Page 2                                                   May 1989


















  STAT(2)                                                   STAT(2)



                 more information about this file system.  No other
                 meaning is associated with this value.

       strdev   This field should be used only by administrative
                 commands.  It is valid only for block special or
                 character special files and only has meaning on
                 the system where the file was configured.

       stnlink  This field should be used only by administrative
                 commands.

       stuid    The user ID of the file's owner.

       stgid    The group ID of the file's group.

       stsize   For regular files, this is the address of the end
                 of the file.  For pipes or fifos, this is the
                 count of the data currently in the file.  For
                 block special or character special, this is not
                 defined.

       statime, stausec
                 Time when file data was last accessed.  Changed by
                 the following system calls:  creat(2), mknod(2),
                 pipe(2), utime(2), and read(2).

       stmtime, stmusec
                 Time when data was last modified.  Changed by the
                 following system calls:  creat(2), mknod(2),
                 pipe(2), utime(2), and write(2).

       stctime, stcusec
                 Time when file status was last changed.  Changed
                 by the following system calls:  chmod(2),
                 chown(2), creat(2), link(2), mknod(2), pipe(2),
                 unlink(2), utime(2), and write(2).

       The st_ausec, st_musec, and st_cusec fields provide for
       microsecond time modulation.  Presently they are filled with
       zeroes.


  Page 3                                                   May 1989


















  STAT(2)                                                   STAT(2)



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

       [EINTR]        A signal was caught during the stat system
                      call.

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

       Fstat will fail if one or more of the following are true:

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

       [EFAULT]       Buf points to an invalid address.

       [ENOLINK]      Fildes 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 to
       indicate the error.




  Page 4                                                   May 1989
















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