8 char const *file_type (struct stat const *);
10 #if STAT_MACROS_BROKEN
22 #endif /* STAT_MACROS_BROKEN. */
25 # define S_IFMT 0170000
27 #if !defined(S_ISBLK) && defined(S_IFBLK)
28 # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
30 #if !defined(S_ISCHR) && defined(S_IFCHR)
31 # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
33 #if !defined(S_ISDIR) && defined(S_IFDIR)
34 # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
36 #if !defined(S_ISREG) && defined(S_IFREG)
37 # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
39 #if !defined(S_ISFIFO) && defined(S_IFIFO)
40 # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
42 #if !defined(S_ISLNK) && defined(S_IFLNK)
43 # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
45 #if !defined(S_ISSOCK) && defined(S_IFSOCK)
46 # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
48 #if !defined(S_ISMPB) && defined(S_IFMPB) /* V7 */
49 # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB)
50 # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC)
52 #if !defined(S_ISNWK) && defined(S_IFNWK) /* HP/UX */
53 # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK)
55 #if !defined(S_ISDOOR) && defined(S_IFDOOR) /* Solaris 2.5 and up */
56 # define S_ISDOOR(m) (((m) & S_IFMT) == S_IFDOOR)
59 /* If any of the following S_* macros are undefined, define them here
60 so each use doesn't have to be guarded with e.g., #ifdef S_ISLNK. */
62 # define S_ISREG(Mode) 0
66 # define S_ISDIR(Mode) 0
70 # define S_ISLNK(Mode) 0
74 # define S_ISFIFO(Mode) 0
78 # define S_ISSOCK(Mode) 0
82 # define S_ISCHR(Mode) 0
86 # define S_ISBLK(Mode) 0
90 # define S_ISDOOR(Mode) 0
94 # define S_TYPEISSEM(Stat_buf_p) 0
98 # define S_TYPEISSHM(Stat_buf_p) 0
102 # define S_TYPEISTMO(Stat_buf_p) 0