stat(2) stat(2)
NAME
stat, fstat - 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.
lstat is like stat except in the case where the named file
is a symbolic link, in which case lstat returns information
about the link, while stat returns information about the
file the link references.
Similarly, 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.
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:
ushort stmode; File mode; see mknod(2)
inot stino; Inode number
devt stdev; ID of device containing a directory
entry for this file
devt strdev; ID of device. This entry is defined
only for character special or block
special files
Page 1 (last mod. 1/14/87)
stat(2) stat(2)
short stnlink; Number of links
ushort stuid; User ID of the file's owner
ushort stgid; Group ID of the file's group
offt stsize; File size in bytes
timet statime; Time of last access
timet stmtime; Time of last data modification
timet stctime; Time of last file status change Times
measured in seconds since 00:00:00 GMT,
Jan. 1, 1970
long stblksize;
optimal blocksize for I/O ops
long stblocks; actual number of blocks allocated
statime 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 Time when data was last modified. Changed by
the following system calls: creat(2),
mknod(2), pipe(2), utime(2), and write(2).
stctime 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).
stat and lstat 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.
fstat will fail if one or more of the following are true:
[EBADF]
Page 2 (last mod. 1/14/87)
stat(2) stat(2)
fildes is not a valid open file descriptor.
[EFAULT]
buf points to an invalid address.
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.
SEE ALSO
chmod(2), chown(2), creat(2), link(2), mknod(2), pipe(2),
read(2), time(2), unlink(2), utime(2), write(2).
Page 3 (last mod. 1/14/87)