slibc, the Stockholm C Library, is an implementation of a C libray, for POSIX, just for fun. slibc does not aim to support C++, or any other language than C. Furthermore, it does not try to support older versions of C than C99. Macro definitions: _SLIBC_SOURCE -- Enable slibc extensions. These extensions are usually extensions introduced in other C libraries, but are considered good extensions. _GNU_SOURCE -- Enable glibc extensions (GNU extensions.) _BSD_SOURCE -- Enable BSD extensions. _SLIBC_SUPPRESS_WARNINGS -- Suppress all #warning and other warnings, this is primarily intended to be used when compiling slibc. _PORTABLE_SOURCE -- Unconditionally disable all extensions. _LIBRARY_HEADER -- Alternative to _PORTABLE_SOURCE that should be used in header files for libraryes. This allows you to be sure that your library is portable between libc:s, and that sources using your library does not been to be compiled with the same libc. It is important to use this instead of _PORTABLE_SOURCE in library header files, otherwise the user of the library cannot fully utilise _PORTABLE_SOURCE. slibc provides some slib-specific extensions that do not require _SLIBC_SOURCE. (They are however disabled if _PORTABLE_SOURCE is defined.) These extensions are defined in header files whose name starts with `slibc-`. Headers starting with `slibc/` are not extensions, those are internals that may change at any time.