1 /* 2 * Copyright (c) 1982, 1986 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 * 6 * @(#)stat.h 7.1 (Berkeley) 06/04/86 7 */ 8 9 struct stat 10 { 11 dev_t st_dev; 12 ino_t st_ino; 13 unsigned short st_mode; 14 short st_nlink; 15 uid_t st_uid; 16 gid_t st_gid; 17 dev_t st_rdev; 18 off_t st_size; 19 time_t st_atime; 20 int st_spare1; 21 time_t st_mtime; 22 int st_spare2; 23 time_t st_ctime; 24 int st_spare3; 25 long st_blksize; 26 long st_blocks; 27 long st_spare4[2]; 28 }; 29 30 #define S_IFMT 0170000 /* type of file */ 31 #define S_IFDIR 0040000 /* directory */ 32 #define S_IFCHR 0020000 /* character special */ 33 #define S_IFBLK 0060000 /* block special */ 34 #define S_IFREG 0100000 /* regular */ 35 #define S_IFLNK 0120000 /* symbolic link */ 36 #define S_IFSOCK 0140000/* socket */ 37 #define S_ISUID 0004000 /* set user id on execution */ 38 #define S_ISGID 0002000 /* set group id on execution */ 39 #define S_ISVTX 0001000 /* save swapped text even after use */ 40 #define S_IREAD 0000400 /* read permission, owner */ 41 #define S_IWRITE 0000200 /* write permission, owner */ 42 #define S_IEXEC 0000100 /* execute/search permission, owner */ 43