|
|
#include <sys/stat.h>
dev_t st_dev; /* ID of device containing */ /* a directory entry for this file */ ino32_t st_ino; /* i-node number (32 bits-worth) */ mode_t st_mode; /* File mode (permissions and type, see mknod(S)) */ nlink_t 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 owner */ dev_t st_rdev; /* ID of block/character special file */ off_t st_size; /* File size in bytes */ time_t st_atime; /* Time of last access */ time_t st_mtime; /* Time of last data modification */ time_t st_ctime; /* Time of last file status change */ /* Times measured in seconds since */ /* 00:00:00 GMT, Jan. 1, 1970 */ long st_blksize; /* Preferred I/O block size in bytes */ long st_blocks; /* Number st_blksize blocks allocated */ char st_fstype[_ST_FSTYPSZ]; /* A string containing filesystem's type */
The st_mode
value is actually a combination of one or more of the following file mode
values:
S_IFMT 0170000 /* type of file */ S_IFREG 0100000 /* regular */ S_IFBLK 0060000 /* block special */ S_IFDIR 0040000 /* directory */ S_IFCHR 0020000 /* character special */ S_IFIFO 0010000 /* fifo */ S_IFNAM 0050000 /* special named file */ S_IFLNK 0120000 /* symbolic link */The following definitions provide POSIX compliance of file permissions:
S_IREAD 00400 /* read permission, owner */ S_IWRITE 00200 /* write permission, owner */ S_IEXEC 00100 /* execute/search permission, owner */S_ISUID 04000 /* set user id on execution */ S_ISGID 02000 /* set group id on execution */
S_ISVTX 01000 /* save swapped text even after use */
S_IRWXU 00700 /* read, write, execute: owner */ S_IRUSR 00400 /* read permission: owner */ S_IWUSR 00200 /* write permission: owner */ S_IXUSR 00100 /* execute permission: owner */
S_IRWXG 00070 /* read, write, execute: group */ S_IRGRP 00040 /* read permission: group */ S_IWGRP 00020 /* write permission: group */ S_IXGRP 00010 /* execute permission: group */
S_IRWXO 00007 /* read, write, execute: other */ S_IROTH 00004 /* read permission: other */ S_IWOTH 00002 /* write permission: other */ S_IXOTH 00001 /* execute permission: other */
X/Open CAE Specification, System Interfaces and Headers, Issue 4, Version 2;
IEEE POSIX Std 1003.1-1990 System Application Program Interface (API) [C Language] (ISO/IEC 9945-1)
;
and
NIST FIPS 151-1
.