On 2019-11-23 03:20, Robert Elz wrote:
Date: Sat, 23 Nov 2019 02:52:43 -0500 From: Andras Farkas <deepbluemistake@gmail.com> Message-ID: <CAA0nTRsAVKLycy=kxt3BMHDv9zmSUEZTMdAbRfO3P+V22aS3vA@mail.gmail.com>
| (because it IS the implementation, yet it's also not the OS)
That distinction, which is made by many standards in various fields is totally worthless - whether any particular piece of code (or hardware or whatever) is implementation or application (or however the relevant standard attempts to divide the world into two groups) depends entirely upon where you are looking at it from.
Programmers must clearly distinguish between standard or documented system independent feature test macros intended to be set by the programmer in feature_test_macros(7) and the documentation for the system headers, library interfaces, and standards e.g #define _POSIX_C_SOURCE 200809L #define _XOPEN_SOURCE 700 #define _DEFAULT_SOURCE 1 #define _GNU_SOURCE 1 Those feature test macros enable certain features of implementations in conformance with standards or documentation. Those standard or documented system independent feature test macros should be distinguished from implementation specific feature macros often set in /usr/include/features.h, /usr/include/sys/features.h, and their inclusions, included from feature test dependent library headers, which may set feature test macros, and implementation specific feature macros. Those implementation specific feature macros are tested in library headers in lieu of various feature test macros e.g. Linux __USE_POSIX, __USE_XOPEN, and should never be used or set by the programmer as they vary between implementations and may be changed by any implementation release, as they are non-standard and undocumented. -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised.