summaryrefslogtreecommitdiff
path: root/manual/intro.texi
diff options
context:
space:
mode:
Diffstat (limited to 'manual/intro.texi')
-rw-r--r--manual/intro.texi51
1 files changed, 39 insertions, 12 deletions
diff --git a/manual/intro.texi b/manual/intro.texi
index e0447b6d92..b8f4c8c6ba 100644
--- a/manual/intro.texi
+++ b/manual/intro.texi
@@ -77,12 +77,13 @@ other symbols provided by the library. This list also states which
standards each function or symbol comes from.
@menu
-* ISO C:: The international standard for the C
+* ISO C:: The international standard for the C
programming language.
* POSIX:: The ISO/IEC 9945 (aka IEEE 1003) standards
for operating systems.
* Berkeley Unix:: BSD and SunOS.
* SVID:: The System V Interface Description.
+* XPG:: The X/Open Portability Guide.
@end menu
@node ISO C, POSIX, , Standards and Portability
@@ -118,18 +119,22 @@ differences between @w{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.
+
@node POSIX, Berkeley Unix, ISO C, Standards and Portability
@subsection POSIX (The Portable Operating System Interface)
@cindex POSIX
@cindex POSIX.1
@cindex IEEE Std 1003.1
+@cindex ISO/IEC 9945-1
@cindex POSIX.2
@cindex IEEE Std 1003.2
+@cindex ISO/IEC 9945-2
-The GNU library is also compatible with the IEEE @dfn{POSIX} family of
+The GNU library is also compatible with the ISO @dfn{POSIX} family of
standards, known more formally as the @dfn{Portable Operating System
-Interface for Computer Environments}. POSIX is derived mostly from
-various versions of the Unix 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 @w{ISO C}; POSIX specifies additional features for
@@ -141,14 +146,14 @@ programming language support which can run in many diverse operating
system environments.@refill
The GNU C library implements all of the functions specified in
-@cite{IEEE Std 1003.1-1990, the POSIX System Application Program
+@cite{ISO/IEC 9945-1:1996, the POSIX System Application Program
Interface}, commonly referred to as POSIX.1. The primary extensions to
the @w{ISO C} facilities specified by this standard include file system
interface primitives (@pxref{File System Interface}), device-specific
terminal control functions (@pxref{Low-Level Terminal Interface}), and
process control functions (@pxref{Processes}).
-Some facilities from @cite{IEEE Std 1003.2-1992, the POSIX Shell and
+Some facilities from @cite{ISO/IEC 9945-2:1993, the POSIX Shell and
Utilities standard} (POSIX.2) are also implemented in the GNU library.
These include utilities for dealing with regular expressions and other
pattern matching facilities (@pxref{Pattern Matching}).
@@ -186,7 +191,7 @@ The BSD facilities include symbolic links (@pxref{Symbolic Links}), the
@code{select} function (@pxref{Waiting for I/O}), the BSD signal
functions (@pxref{BSD Signal Handling}), and sockets (@pxref{Sockets}).
-@node SVID, , Berkeley Unix, Standards and Portability
+@node SVID, XPG, Berkeley Unix, Standards and Portability
@subsection SVID (The System V Interface Description)
@cindex SVID
@cindex System V Unix
@@ -196,14 +201,36 @@ The @dfn{System V Interface Description} (SVID) is a document describing
the AT&T Unix System V operating system. It is to some extent a
superset of the POSIX standard (@pxref{POSIX}).
-The GNU C library defines some of the facilities required by the SVID
+The GNU C library defines most of the facilities required by the SVID
that are not also required by the @w{ISO C} or POSIX standards, for
compatibility with System V Unix and other Unix systems (such as
SunOS) which include these facilities. However, many of the more
obscure and less generally useful facilities required by the SVID are
not included. (In fact, Unix System V itself does not provide them all.)
-@c !!! mention sysv ipc/shmem when it is there.
+The supported facilities from System V include the methods for
+inter-process communication and shared memory, the @code{hsearch} and
+@code{drand48} families of functions, @code{fmtmsg} and several of the
+mathematical functions.
+
+@node XPG, , SVID, Standards and Portability
+@subsection XPG (The X/Open Portability Guide)
+
+The X/Open Portability Guide, published by the X/Open Company, Ltd., is
+a more general standard than POSIX. X/Open owns the Unix copyright and
+the XPG specifies the requirements for systems which are intended to be
+a Unix system.
+
+The GNU C library complies to the X/Open Portability Guide, Issue 4.2,
+with the with all extensions common to XSI (X/Open System Interface)
+compliant systems and also all X/Open UNIX extensions.
+
+The additions on top of POSIX are mainly derived from functionality
+available in @w{System V} and BSD systems. Some of the really bad
+mistakes in @w{System V} systems were corrected, though. Since
+fulfilling the XPG standard with the Unix extensions is a
+precondition for getting the Unix brand chances are good that the
+functionality is available on commercial systems.
@node Using the Library, Roadmap to the Manual, Standards and Portability, Introduction
@@ -360,7 +387,7 @@ and also provides a macro definition for @code{abs}. Then, in:
@smallexample
#include <stdlib.h>
-int f (int *i) @{ return (abs (++*i)); @}
+int f (int *i) @{ return abs (++*i); @}
@end smallexample
@noindent
@@ -370,10 +397,10 @@ to a function and not a macro.
@smallexample
#include <stdlib.h>
-int g (int *i) @{ return ((abs)(++*i)); @}
+int g (int *i) @{ return (abs) (++*i); @}
#undef abs
-int h (int *i) @{ return (abs (++*i)); @}
+int h (int *i) @{ return abs (++*i); @}
@end smallexample
Since macro definitions that double for a function behave in