Overall System Options
======================
POSIX defines certain system-specific options that not all POSIX
systems support. Since these options are provided in the kernel, not
in the library, simply using the GNU C library does not guarantee any
of these features is supported; it depends on the system you are using.
You can test for the availability of a given option using the macros
in this section, together with the function `sysconf'. The macros are
defined only if you include `unistd.h'.
For the following macros, if the macro is defined in `unistd.h',
then the option is supported. Otherwise, the option may or may not be
supported; use `sysconf' to find out. Note:Sysconf.
- Macro: int _POSIX_JOB_CONTROL
If this symbol is defined, it indicates that the system supports
job control. Otherwise, the implementation behaves as if all
processes within a session belong to a single process group.
Note:Job Control.
- Macro: int _POSIX_SAVED_IDS
If this symbol is defined, it indicates that the system remembers
the effective user and group IDs of a process before it executes an
executable file with the set-user-ID or set-group-ID bits set, and
that explicitly changing the effective user or group IDs back to
these values is permitted. If this option is not defined, then if
a nonprivileged process changes its effective user or group ID to
the real user or group ID of the process, it can't change it back
again. Note:Enable/Disable Setuid.
For the following macros, if the macro is defined in `unistd.h',
then its value indicates whether the option is supported. A value of
`-1' means no, and any other value means yes. If the macro is not
defined, then the option may or may not be supported; use `sysconf' to
find out. Note:Sysconf.
- Macro: int _POSIX2_C_DEV
If this symbol is defined, it indicates that the system has the
POSIX.2 C compiler command, `c89'. The GNU C library always
defines this as `1', on the assumption that you would not have
installed it if you didn't have a C compiler.
- Macro: int _POSIX2_FORT_DEV
If this symbol is defined, it indicates that the system has the
POSIX.2 Fortran compiler command, `fort77'. The GNU C library
never defines this, because we don't know what the system has.
- Macro: int _POSIX2_FORT_RUN
If this symbol is defined, it indicates that the system has the
POSIX.2 `asa' command to interpret Fortran carriage control. The
GNU C library never defines this, because we don't know what the
system has.
- Macro: int _POSIX2_LOCALEDEF
If this symbol is defined, it indicates that the system has the
POSIX.2 `localedef' command. The GNU C library never defines
this, because we don't know what the system has.
- Macro: int _POSIX2_SW_DEV
If this symbol is defined, it indicates that the system has the
POSIX.2 commands `ar', `make', and `strip'. The GNU C library
always defines this as `1', on the assumption that you had to have
`ar' and `make' to install the library, and it's unlikely that
`strip' would be absent when those are present.