I am not sure if they have any meaning except that they're in sys/stat.h
, so the S
may stand for "stat".
I tried doing some detective work, for example, the IEEE Std 1003.1, 2004 Edition entry for sys/stat.h
says this: First released in Issue 1. Derived from Issue 1 of the SVID.
Then, the Developer Specs for System V Application Binary Interface (see Volume 1a [pdf]), page 95, and even that has names beginning with S_
. I haven't been able to go further back than this.
About your question in general: much of it is history. For example, creat()
is in POSIX, but the name comes from history. Many of POSIX function names (and behavior) comes from the C standard. In fact, their description usually have text like:
The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 defers to the ISO C standard.
I think the only way to find any logic behind the POSIX API is to read the history of Unix.
The following may help: