#include <sys/_types/_s_ifmt.h>
sys/_types/_s_ifmt.h
[XSI] The symbolic names for file modes for use as values of mode_t
shall be defined as described in <sys/stat.h>
28 macros
File type
#define S_IFMT 0170000
[XSI] type of file mask
#define S_IFIFO 0010000
[XSI] named pipe (fifo)
#define S_IFCHR 0020000
[XSI] character special
#define S_IFDIR 0040000
[XSI] directory
#define S_IFBLK 0060000
[XSI] block special
#define S_IFREG 0100000
[XSI] regular
#define S_IFLNK 0120000
[XSI] symbolic link
#define S_IFSOCK 0140000
[XSI] socket
#define S_IFWHT 0160000
OBSOLETE: whiteout
File mode
Read, write, execute/search by owner
#define S_IRWXU 0000700
[XSI] RWX mask for owner
#define S_IRUSR 0000400
[XSI] R for owner
#define S_IWUSR 0000200
[XSI] W for owner
#define S_IXUSR 0000100
[XSI] X for owner
Read, write, execute/search by group
#define S_IRWXG 0000070
[XSI] RWX mask for group
#define S_IRGRP 0000040
[XSI] R for group
#define S_IWGRP 0000020
[XSI] W for group
#define S_IXGRP 0000010
[XSI] X for group
Read, write, execute/search by others
#define S_IRWXO 0000007
[XSI] RWX mask for other
#define S_IROTH 0000004
[XSI] R for other
#define S_IWOTH 0000002
[XSI] W for other
#define S_IXOTH 0000001
[XSI] X for other
#define S_ISUID 0004000
[XSI] set user id on execution
#define S_ISGID 0002000
[XSI] set group id on execution
#define S_ISVTX 0001000
[XSI] directory restrcted delete
#define S_ISTXT S_ISVTX
sticky bit: not supported
#define S_IREAD S_IRUSR
backward compatability
#define S_IWRITE S_IWUSR
backward compatability
#define S_IEXEC S_IXUSR
backward compatability