diff options
Diffstat (limited to 'reference/C/MAN/stat.htm')
-rw-r--r-- | reference/C/MAN/stat.htm | 232 |
1 files changed, 232 insertions, 0 deletions
diff --git a/reference/C/MAN/stat.htm b/reference/C/MAN/stat.htm new file mode 100644 index 0000000..37ba91b --- /dev/null +++ b/reference/C/MAN/stat.htm @@ -0,0 +1,232 @@ +<TITLE>stat</TITLE> +<body bgcolor="#ffffcc"> +<hr> +<pre> + + + +<h3>STAT(2) Linux Programmer's Manual STAT(2) +</h3> + +<h3>NAME +</h3> stat, fstat, lstat - get file status + +<h3>SYNOPSIS +</h3> #include <sys/stat.h> + #include <unistd.h> + + int stat(const char *file_name, struct stat *buf); + int fstat(int filedes, struct stat *buf); + int lstat(const char *file_name, struct stat *buf); + +<h3>DESCRIPTION +</h3> These functions return information about the specified + file. You do not need any access rights to the file to + get this information but you need search rights to all + directories named in the path leading to the file. + + stat stats the file pointed to by file_name and fills in + buf. + + lstat is identical to stat, only the link itself is + stated, not the file that is obtained by tracing the + links. + + fstat is identical to stat, only the open file pointed to + by filedes (as returned by fopen(3) ) is stated in place + of file_name. + + + They all return a stat structure, which is declared as + follows: + + struct stat + { + dev_t st_dev; /* device */ + ino_t st_ino; /* inode */ + umode_t st_mode; /* protection */ + nlink_t st_nlink; /* number of hard links */ + uid_t st_uid; /* user ID of owner */ + gid_t st_gid; /* group ID of owner */ + dev_t st_rdev; /* device type (if inode device) */ + off_t st_size; /* total size, in bytes */ + unsigned long st_blksize; /* blocksize for filesystem I/O */ + unsigned long st_blocks; /* number of blocks allocated */ + time_t st_atime; /* time of last access */ + time_t st_mtime; /* time of last modification */ + time_t st_ctime; /* time of last change */ + }; + + Note that st_blocks may not always be in terms of blocks + of size st_blksize, and that st_blksize may instead pro- + vide a notion of the "preferred" blocksize for efficient + file system I/O. + + + + +<h3>Linux 1.1.75 1 January 1995 1 +</h3> + + + + +<h3>STAT(2) Linux Programmer's Manual STAT(2) +</h3> + + Not all of the Linux filesystems implement all of the time + fields. Traditionally, st_atime is changed by mknod(2), + utime(2), read(2), write(2), and truncate(2). + + Traditionally, st_mtime is changed by mknod(2), utime(2), + and write(2). The st_mtime is not changed for changes in + owner, group, hard link count, or mode. + + Traditionally, st_ctime is changed by writing or by set- + ting inode information (i.e., owner, group, link count, + mode, etc.). + + The following macros are defined to check the file type: + + S_ISLNK(m) is it a symbolic link + + S_ISREG(m) regular file + + S_ISDIR(m) directory + + S_ISCHR(m) character device + + S_ISBLK(m) block device + + S_ISFIFO(m) fifo + + S_ISSOCK(m) socket + + The following flags are defined for the st_mode field: + + S_IFMT 00170000 bitmask for the file type bit- + fields + + S_IFSOCK 0140000 socket + + S_IFLNK 0120000 symbolic link + + S_IFREG 0100000 regular file + + S_IFBLK 0060000 block device + + S_IFDIR 0040000 directory + + S_IFCHR 0020000 character device + + S_IFIFO 0010000 fifo + + S_ISUID 0004000 set UID bit + + S_ISGID 0002000 set GID bit + + S_ISVTX 0001000 sticky bit + + S_IRWXU 00700 user (file owner) has read, write + + + +<h3>Linux 1.1.75 1 January 1995 2 +</h3> + + + + +<h3>STAT(2) Linux Programmer's Manual STAT(2) +</h3> + + and execute permission + + S_IRUSR (S_IREAD) + 00400 user has read permission + + S_IWUSR (S_IWRITE) + 00200 user has write permission + + S_IXUSR (S_IEXEC) + 00100 user has execute permission + + S_IRWXG 00070 group has read, write and execute + permission + + S_IRGRP 00040 group has read permission + + S_IWGRP 00020 group has write permission + + S_IXGRP 00010 group has execute permission + + S_IRWXO 00007 others have read, write and execute + permission + + S_IROTH 00004 others have read permission + + S_IWOTH 00002 others have write permisson + + S_IXOTH 00001 others have execute permission + +<h3>RETURN VALUE +</h3> On success, zero is returned. On error, -1 is returned, + and errno is set appropriately. + +<h3>ERRORS +</h3> EBADF filedes is bad. + + ENOENT File does not exist. + +<h3>CONFORMING TO +</h3> SVID (not lstat()), AT&T (not lstat()), POSIX (not + lstat()), X/OPEN (not lstat()), BSD 4.3 + +</pre> +<hr> +<h3>SEE ALSO +</h3><p> +<a href=chmod.htm>chmod</a>, +<a href=chown.htm>chown</a>, +<a href=readlink.htm>readlink</a>, +<a href=utime.htm>utime</a>, +<pre> + + + + + + + + + + + + + +<h3>Linux 1.1.75 1 January 1995 3 +</h3> + +
</pre> +<P> +<hr> +<p> +<center> +<table border=2 width=80%> +<tr align=center> +<td width=25%> +<a href=../cref.html>Top</a> +</td><td width=25%> +<a href=../master_index.html>Master Index</a> +</td><td width=25%> +<a href=../SYNTAX/keywords.html>Keywords</a> +</td><td width=25%> +<a href=../FUNCTIONS/funcref.htm>Functions</a> +</td> +</tr> +</table> +</center> +<p> +<hr> + +This manual page was brought to you by <i>mjl_man V-2.0</i> |