| 1 | struct stat |
| 2 | { |
| 3 | dev_t st_dev; |
| 4 | ino_t st_ino; |
| 5 | unsigned short st_mode; |
| 6 | short st_nlink; |
| 7 | short st_uid; |
| 8 | short st_gid; |
| 9 | dev_t st_rdev; |
| 10 | off_t st_size; |
| 11 | time_t st_atime; |
| 12 | time_t st_mtime; |
| 13 | time_t st_ctime; |
| 14 | }; |
| 15 | |
| 16 | #define S_IFMT 0170000 /* type of file */ |
| 17 | #define S_IFDIR 0040000 /* directory */ |
| 18 | #define S_IFCHR 0020000 /* character special */ |
| 19 | #define S_IFBLK 0060000 /* block special */ |
| 20 | #define S_IFREG 0100000 /* regular */ |
| 21 | #define S_IFMPC 0030000 /* multiplexed char special */ |
| 22 | #define S_IFMPB 0070000 /* multiplexed block special */ |
| 23 | #define S_ISUID 0004000 /* set user id on execution */ |
| 24 | #define S_ISGID 0002000 /* set group id on execution */ |
| 25 | #define S_ISVTX 0001000 /* save swapped text even after use */ |
| 26 | #define S_IREAD 0000400 /* read permission, owner */ |
| 27 | #define S_IWRITE 0000200 /* write permission, owner */ |
| 28 | #define S_IEXEC 0000100 /* execute/search permission, owner */ |