I am learning the POSIX API, and I don't understand the logic behind some of the names.
S_ is just to identify what structure/function the constant goes with.
<sys/stat.h>, the constants
S_IWUSR, etc are possible values for the
st_mode member for
struct stat (used in
stat() and friends). All the members of
struct stat start with the prefix
st_, and there are several
stat-related macros that also start with
S_. The convention is merely there to make matching structure names, member names, and constants easier.