diff options
Diffstat (limited to 'NOTES')
-rw-r--r-- | NOTES | 36 |
1 files changed, 32 insertions, 4 deletions
@@ -53,12 +53,26 @@ self-contained way. - Macro: _SVID_SOURCE If you define this macro, functionality derived from SVID is - included as well as the ANSI C, POSIX.1, and POSIX.2 material. + included as well as the ANSI C, POSIX.1, POSIX.2, and X/Open + material. + + - Macro: _XOPEN_SOURCE + If you define these macro, functionality described in the X/Open + Portability Guide is included. This is an superset of the POSIX.1 + and POSIX.2 functionality and in fact `_POSIX_SOURCE' and + `_POSIX_C_SOURCE' get automatically be defined. + + But as the great unifaction of all Unices there is also + functionality only available in BSD and SVID is included. + + If the macro `_XOPEN_SOURCE_EXTENDED' is also defined, even more + functionality is available. The extra functions will make all + functions available which are necessary for the X/Open Unix brand. - Macro: _GNU_SOURCE If you define this macro, everything is included: ANSI C, POSIX.1, - POSIX.2, BSD, SVID, and GNU extensions. In the cases where POSIX.1 - conflicts with BSD, the POSIX definitions take precedence. + POSIX.2, BSD, SVID, X/Open, and GNU extensions. In the cases where + POSIX.1 conflicts with BSD, the POSIX definitions take precedence. If you want to get the full effect of `_GNU_SOURCE' but make the BSD definitions take precedence over the POSIX definitions, use @@ -73,9 +87,23 @@ self-contained way. compiler or linker. *Note:* If you forget to do this, you may get very strange errors at run time. + - Macro: _REENTRANT,_THREAD_SAFE + If you define one this macro, reentrant versions of several + functions get declared. Some of the functions are specified in + POSIX.1c but many others are only available on a few other systems + or are unique to GNU libc. The problem is that the + standardization of the thread safe C library interface still is + behind. + + Unlike on some other systems no special version of the C library + must be used for linking. There is only one version but while + compiling this it must have been specified to compile as thread + safe. + We recommend you use `_GNU_SOURCE' in new programs. If you don't specify the `-ansi' option to GCC and don't define any of these macros -explicitly, the effect is the same as defining `_GNU_SOURCE'. +explicitly, the effect is the same as defining `_POSIX_C_SOURCE' to 2 +and `_POSIX_SOURCE', `_SVID_SOURCE', and `_BSD_SOURCE' to 1. When you define a feature test macro to request a larger class of features, it is harmless to define in addition a feature test macro for |