1 /* This is file STAT.H */ 2 /* 3 ** Copyright (C) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954 4 ** 5 ** This file is distributed under the terms listed in the document 6 ** "copying.dj", available from DJ Delorie at the address above. 7 ** A copy of "copying.dj" should accompany this file; if not, a copy 8 ** should be available from where this file was obtained. This file 9 ** may not be distributed without a verbatim copy of "copying.dj". 10 ** 11 ** This file is distributed WITHOUT ANY WARRANTY; without even the implied 12 ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 */ 14 15 #ifndef _STAT_H_ 16 #define _STAT_H_ 17 18 struct stat { 19 short st_dev; 20 short st_ino; 21 unsigned short st_mode; 22 short st_nlink; 23 short st_uid; 24 short st_gid; 25 short st_rdev; 26 short st_align_for_word32; 27 long st_size; 28 long st_atime; 29 long st_mtime; 30 long st_ctime; 31 long st_blksize; 32 }; 33 34 #define S_IFMT 0xF000 /* file type mask */ 35 #define S_IFDIR 0x4000 /* directory */ 36 #define S_IFIFO 0x1000 /* FIFO special */ 37 #define S_IFCHR 0x2000 /* character special */ 38 #define S_IFBLK 0x3000 /* block special */ 39 #define S_IFREG 0x8000 /* or just 0x0000, regular */ 40 #define S_IREAD 0x0100 /* owner may read */ 41 #define S_IWRITE 0x0080 /* owner may write */ 42 #define S_IEXEC 0x0040 /* owner may execute <directory search> */ 43 44 #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) 45 #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) 46 #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) 47 #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) 48 #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) 49 50 #ifdef __cplusplus 51 extern "C" { 52 #endif 53 int stat(const char *, struct stat *); 54 int fstat(int, struct stat *); 55 #ifdef __cplusplus 56 } 57 #endif 58 59 #endif |