STAT(2) GENIX Programmer's Manual STAT(2)
NAME
stat, fstat - get file status
SYNOPSIS
#include <sys/types.h>
#include <sys/stat.h>
stat(name, buf)
char *name;
struct stat *buf;
fstat(fildes, buf)
struct stat *buf;
DESCRIPTION
Stat obtains detailed information about a named file. Fstat obtains
the same information about an open file known by the file descriptor
from a successful open, creat, dup or pipe(2) call.
Name points to a null-terminated string naming a file; buf is the
address of a buffer into which information is placed concerning the
file. It is unnecessary to have any permissions at all with respect
to the file, but all directories leading to the file must be search-
able. The layout of the structure pointed to by buf as defined in
<stat.h> is given below. St_mode is encoded according to the
`#define' statements.
/*
* @(#)stat.h 3.2 7/14/83
* @(#)Copyright (C) 1983 by National Semiconductor Corp.
*/
struct stat
{
dev_t st_dev;
ino_t st_ino;
unsigned short st_mode;
short st_nlink;
short st_uid;
short st_gid;
dev_t st_rdev;
off_t st_size;
time_t st_atime;
time_t st_mtime;
time_t st_ctime;
};
#define S_IFMT 0170000 /* type of file */
#define S_IFDIR 0040000 /* directory */
#define S_IFCHR 0020000 /* character special */
#define S_IFBLK 0060000 /* block special */
#define S_IFREG 0100000 /* regular */
Printed 11/16/83 1
STAT(2) GENIX Programmer's Manual STAT(2)
#define S_ISUID 0004000 /* set user id on execution */
#define S_ISGID 0002000 /* set group id on execution */
#define S_ISVTX 0001000 /* save swapped text even after use */
#define S_IREAD 0000400 /* read permission, owner */
#define S_IWRITE 0000200 /* write permission, owner */
#define S_IEXEC 0000100 /* execute/search permission, owner */
The mode bits 0000070 and 0000007 encode group and others permis-
sions (see chmod(2)). The defined types, ino_t, off_t, time_t, name
various width integer values; dev_t encodes major and minor device
numbers; their exact definitions are in the include file
<sys/types.h> (see types(5)).
When fildes is associated with a pipe, fstat reports an ordinary
file with an i-node number, restricted permissions, and a not neces-
sarily meaningful length.
st_atime is the file was last read. For reasons of efficiency, it
is not set when a directory is searched, although this would be more
logical. st_mtime is the time the file was last written or created.
It is not set by changes of owner, group, link count, or mode.
st_ctime is set both both by writing and changing the i-node.
SEE ALSO
ls(1), filsys(5)
DIAGNOSTICS
Zero is returned if a status is available; -1 if the file cannot be
found.
Printed 11/16/83 2