2 The GNU C Library: System & Network Applications
this can affect how you use the library. This section gives you an overview of these
standards, so that you will know what they are when they are mentioned in other
parts of the manual.
See Appendix B [Summary of Library Facilities], page 475, for an alphabetical
list of the functions and other symbols provided by the library. This list also states
which standards each function or symbol comes from.
1.2.1 ISO C
The GNU C Library is compatible with the C standard adopted by the Amer-
ican National Standards Institute (ANSI)as American National Standard X3.159-
1989—"ANSI C" and later by the International Standardization Organization (ISO)
as ISO/IEC 9899:1990, "Programming languages—C". In this manual, we refer to
the standard as ISO C since this is the more general standard with respect to rati-
fication. The header files and library facilities that make up the GNU library are a
superset of those specified by the ISO C standard.
If you are concerned about strict adherence to the ISO C standard, you should use
the ‘-ansi’ option when you compile your programs with the GNU C Compiler.
This tells the compiler to define only ISO standard features from the library header
files, unless you explicitly ask for additional features. See Section 1.3.4 [Feature-
Test Macros], page 8, for information on how to do this.
Being able to restrict the library to include only ISO C features is important be-
cause ISO C puts limitations on what names can be defined by the library imple-
mentation, and the GNU extensions don’t fit these limitations. See Section 1.3.3
[Reserved Names], page 6, for more information about these restrictions.
This manual does not attempt to give you complete details on the differences
between ISO C and older dialects. It gives advice on how to write programs to
work portably under multiple C dialects, but does not aim for completeness.
1.2.2 POSIX (The Portable Operating System Interface)
The GNU library is also compatible with the ISO POSIX family of standards,
known more formally as the Portable Operating System Interface for Computer
Environments (ISO/IEC 9945). They were also published as ANSI/IEEE Std 1003.
POSIX is derived mostly from various versions of the Unix operating system.
The library facilities specified by the POSIX standards are a superset of those
required by ISO C; POSIX specifies additional features for ISO C functions, as well
as specifying new additional functions. In general, the additional requirements and
functionality defined by the POSIX standards are aimed at providing lower-level
support for a particular kind of operating system environment, rather than general
programming language support that can run in many diverse operating system en-
vironments.
The GNU C Library implements all of the functions specified in ISO/IEC 9945-
1:1996, the POSIX System Application Program Interface, commonly referred to
as POSIX.1. The primary extensions to the ISO C facilities specified by this stan-