The stat calls have a series of symbolic names for the various bits in the mode field. From the stat(2) manual page:
The following mask values are defined for the file mode component of
the st_mode field:
S_ISUID 04000 set-user-ID bit
S_ISGID 02000 set-group-ID bit (see below)
S_ISVTX 01000 sticky bit (see below)
S_IRWXU 00700 owner has read, write, and execute permission
S_IRUSR 00400 owner has read permission
S_IWUSR 00200 owner has write permission
S_IXUSR 00100 owner has execute permission
S_IRWXG 00070 group has read, write, and execute permission
S_IRGRP 00040 group has read permission
S_IWGRP 00020 group has write permission
S_IXGRP 00010 group has execute permission
S_IRWXO 00007 others (not in group) have read, write, and
execute permission
S_IROTH 00004 others have read permission
S_IWOTH 00002 others have write permission
S_IXOTH 00001 others have execute permission
I can see that S_IRWXU
is a combination of rwx
and u
(Read, Write
and eXecute permissions for the User) and that S_IRUSR
is combined
from R
and usr
(Read permission for the USeR). Likewise for Write
and eXecute, and for GRouP and OTHers.
The S
part is probably named after the stat
function.
But what about the I
part, what does it mean? Is it modelled after the
various S_ISDIR
("is a directory") macros?
What is the VTX
part from S_ISVTX
? I cannot relate this abbreviation
to "sticky bit".
I
might well be short for "is". Possibly "integer", though.inode.h
, the structure name isinode
, and all the structure elements and constants begin withi
orI
, it's tempting to conclude thatI
comes frominode
.