summaryrefslogtreecommitdiff
path: root/manual
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1996-11-06 04:24:40 +0000
committerUlrich Drepper <drepper@redhat.com>1996-11-06 04:24:40 +0000
commit2c6fe0bd3b270fc644dd4c773f2d47b93f404efe (patch)
treea578bcc93bbeaafacb6012213c458e33b7907528 /manual
parentf5311448f83eada5c5cabf55aae2619dcb1869c0 (diff)
update from main archive 961105cvs/libc-961106
Wed Nov 6 04:30:26 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/syscalls.list: Add weak alias llseek for _llseek syscall. Reported by Andy Sewell <puck@pookhill.demon.co.uk>. * string/argz.h: Don't protect by __USE_GNU. Tue Nov 5 23:38:28 1996 Ulrich Drepper <drepper@cygnus.com> * Lots of files: Update and reformat copyright. * Makefile (headers): Add xopen_lim.h. * catgets/nl_types.h: Move __BEGIN_DECLS before definition of nl_catd. * grp/grp.h: Define setgrent, getgrent, endgrent, and getgrent_r if __USE_XOPEN_EXTENDED is defined. * pwd/pwd.h: Define setpwent, getpwent, endpwent, and getpwent_r if __USE_XOPEN_EXTENDED is defined. * io/Makefile (routines): Add lchown. * io/sys/poll.h: Add definition of POLLWRNORM. * io/sys/stat.h: Declare lstat, fchmod, mknod when __USE_XOPEN_EXTENDED is defined. * libio/Makefile (routines): Add obprintf. * libio/obprintf.c: New file. * libio/iolibio.h: Add prototypes for _IO_obstack_vprintf and _IO_obstack_printf. * libio/libio.h: Fix typo. * libio/stdio.h: Declare tempnam if __USE_XOPEN_EXTENDED is defined. Add prototypes for obstack_vprintf and obstack_printf. * manual/creature.texi: Describe _XOPEN_SOURCE macro. * manual/intro.texi: Add reference to NSS chapter. * manual/libc.texinfo: Update UPDATED. Comment out `@printindex cp'. It works again. * manual/memory.texi: Add description for obstack_ptr_grow, obstack_int_grow, obstack_ptr_grow_fast, and obstack_int_grow_fast. * manual/nss.texi: Add a few @cindex entries and change NSS_STATUS_* index entries to @vindex. * manual/users.texi: Correct @cindex entry for Netgroup. * math/mathcalls.h: Use __USE_XOPEN and __USE_XOPEN_EXTENDED to make declarations visible for X/Open sources. * misc/search.h: Declare insque/remque only is __USE_SVID or __USE_XOPEN_EXTENDED is defined. * misc/sys/uio.h (readv, writev): Change return value from int to ssize_t. * posix/Makefile (headers): Add re_comp.h. * posix/re_comp.h: New file. XPG interface to regex functions. * posix/getconf.c: Add all names from XPG4.2. * posix/posix1_lim.h: Increase minimum values for _POSIX_CHILD_MAX and _POSIX_OPEN_MAX to minimums from XPG4.2. * sysdeps/generic/confname.h: Add all _SC_* names from XPG4.2. * sysdeps/posix/sysconf.c: Handle new _SC_* values. * sysdeps/stub/sysconf.c: Likewise. * posix/unistd.h: Add declaration of ualarm and lchown. Declare usleep, fchown, fchdir, nice, getpgid, setsid, getsid, setreuid, setregid, vfork, ttyslot, symlink, readlink, gethostid, truncate, ftruncate, getdtablesize, brk, sbrk, lockf when __USE_XOPEN_EXTENDED is defined. * posix/sys/wait.h: Declare wait3 if __USE_XOPEN_EXTENDED is defined. * shadow/shadow.h: Define SHADOW using _PATH_SHADOW. * sysdeps/generic/paths.h: Define _PATH_SHADOW. * sysdeps/unix/sysv/linux/paths.h: Likewise. * signal/signal.h: Declare killpg, sigstack and sigaltstack when __USE_XOPEN_EXTENDED is defined. * stdio/stdio.h: Declare tempnam when __USE_XOPEN is defined. * stdlib/stdlib.h: Make rand48 functions available when __USE_XOPEN is defined. Likewise for valloc, putenv, realpath, [efg]cvt*, and getsubopt functions. * string/string.h: Make memccpy, strdup, bcmp, bcopy, bzero, index, and rindex available when __USE_XOPEN_EXTENDED is defined. * sysdeps/mach/getpagesize.c: De-ANSI-fy. Change return type to int. * sysdeps/posix/getpagesize.c: Likewise. * sysdeps/stub/getpagesize.c: Likewise. * sysdeps/unix/getpagesize.c: Likewise. * time/africa: Update from tzdata1996l. * time/asia: Likewise. * time/australia: Likewise. * time/europe: Likewise. * time/northamerica: Likewise. * time/pacificnew: Likewise. * time/southamerica: Likewise. * time/tzfile.h: Update from tzcode1996m. * time/time.h: Declare strptime if __USE_XOPEN. Declare daylight and timezone also if __USE_XOPEN. * time/sys/time.h: Remove declaration of ualarm. * wctype/wctype.h: Just reference ISO C standard. Tue Nov 5 01:26:32 1996 Richard Henderson <rth@tamu.edu> * crypt/Makefile: Add crypt routines to libc as well iff $(crypt-in-libc) is set. Do this for temporary binary compatibility on existing Linux/Alpha installations. * stdlib/div.c, sysdeps/generic/div.c: Move file to .../generic/. * stdlib/ldiv.c, sysdeps/generic/ldiv.c: Likewise. * stdlib/lldiv.c, sysdeps/generic/lldiv.c: Likewise. * sysdeps/alpha/Makefile (divrem): Add divlu, dviqu, remlu, and remqu. * sysdeps/alpha/div.S: New file. * sysdeps/alpha/ldiv.S: New file. * sysdeps/alpha/lldiv.S: New file. * sysdeps/alpha/divrem.h: Merge signed and unsigned division. Take pointers from Linus and tighten the inner loops a bit. * sysdeps/alpha/divl.S: Change defines for merged routines. * sysdeps/alpha/divq.S: Likewise. * sysdeps/alpha/reml.S: Likewise. * sysdeps/alpha/remq.S: Likewise. * sysdeps/alpha/divlu.S: Remove file. * sysdeps/alpha/divqu.S: Likewise. * sysdeps/alpha/remlu.S: Likewise. * sysdeps/alpha/remqu.S: Likewise. * sysdeps/alpha/bsd-_setjmp.S: If PROF, call _mcount. * sysdeps/alpha/bsd-setjmp.S: Likewise. * sysdeps/alpha/bzero.S: Likewise. * sysdeps/alpha/ffs.S: Likewise. * sysdeps/alpha/htonl.S: Likewise. * sysdeps/alpha/htons.S: Likewise. * sysdeps/alpha/memchr.S: Likewise. * sysdeps/alpha/memset.S: Likewise. * sysdeps/alpha/s_copysign.S: Likewise. * sysdeps/alpha/s_fabs.S: Likewise. * sysdeps/alpha/setjmp.S: Likewise. * sysdeps/alpha/stpcpy.S: Likewise. * sysdeps/alpha/stpncpy.S: Likewise. * sysdeps/alpha/strcat.S: Likewise. * sysdeps/alpha/strchr.S: Likewise. * sysdeps/alpha/strcpy.S: Likewise. * sysdeps/alpha/strlen.S: Likewise. * sysdeps/alpha/strncat.S: Likewise. * sysdeps/alpha/strncpy.S: Likewise. * sysdeps/alpha/strrchr.S: Likewise. * sysdeps/alpha/udiv_qrnnd.S: Likewise. Fix private labels. Convert two small jumps to use conditional moves. * sysdeps/unix/alpha/sysdep.h: Compress all __STDC__ nastiness. (PSEUDO): If PROF, call _mcount. * sysdeps/unix/sysv/linux/alpha/brk.S: If PROF, call _mcount. * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise. * sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S: Likewise. * sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Likewise. * sysdeps/unix/sysv/linux/alpha/llseek.S: Likewise. * sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Likewise. * sysdeps/unix/sysv/linux/alpha/syscall.S: Likewise. * sysdeps/alpha/memcpy.S: New file. Odd layout because it should eventually contain memmove as well. * sysdeps/alpha/strcmp.S: New file. * sysdeps/alpha/strncmp.S: New file. * sysdeps/alpha/w_sqrt.S: New file. Tue Nov 5 18:06:06 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/mach/hurd/ttyname_r.c: Use `size_t' for len variable. Tue Nov 5 12:09:29 1996 Ulrich Drepper <drepper@cygnus.com> * sysdep/generic/sysdep.h: Define END only if not yet defined. * sysdep/unix/sysdep.h: Define PSEUDO_END only if not yet defined. Reported by Thomas Bushnell, n/BSG. Mon Nov 4 22:46:53 1996 Ulrich Drepper <drepper@cygnus.com> * manual/users.texi (Netgroup Data): Remove { } around @cindex. Mon Nov 4 19:07:05 1996 Ulrich Drepper <drepper@cygnus.com> * malloc/calloc.c: Check for overflow before trying to allocate memory. Proposed by Neil Matthews <nm@adv.sbc.sony.co.jp>. Fri Nov 1 18:18:32 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * manual/llio.texi (Operating Modes): Add missing arguments to @deftypevr in O_NONBLOCK description. * manual/time.texi (Time Zone Functions): Enclose type name in braces in description of tzname. FIXME: this does not yet work correctly in info. Sun Nov 3 17:29:06 1996 Ulrich Drepper <drepper@cygnus.com> * features.h: Add X/Open macros. * posix/unistd.h: Define X/Open macros. * sysdeps/generic/confname.h: Add _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, and _SC_2_UPE. * sysdeps/posix/sysconf.c: Handle new constants. * sysdeps/stub/sysconf.c: Likewise. * sysdeps/unix/sysv/linux/posix_opt.h: Add definition of _XOPEN_SHM. * catgets/catgets.c (catopen): Set errno to ENOMEM when we run out of memory. (catgets): Set errno to EBADF when catalog handle is invalid. Set errno to ENOMSG when translation is not available. (catclose): Set errno to EBADF when catalog handle is invalid. * ctype/ctype.h: Declare isascii and toascii when __USE_XOPEN. Likewise for _toupper and _tolower. * manual/arith.texi: Document strtoq, strtoll, strtouq, strtoull, strtof, and strtold. * manual/math.texi: Document HUGE_VALf and HUGE_VALl. * manual/stdio.h: Document ' flag for numeric formats of scanf. * manual/users.texi: Document that cuserid shouldn't be used. * misc/Makefile (routines): Add dirname. (headers): Add libgen.h. (tests): Add tst-dirname. * misc/dirname.c: New file. * misc/libgen.h: New file. * misc/tst-dirname.c: New file. * misc/search.h: Parameter of hcreate must be of type size_t. * misc/hsearch.c: Likewise. * misc/hsearch_r.c: Likewise for hcreate_r. * misc/search.h: Parameters of insque and remque must be `void *'. * misc/insremque.c: Likewise. * posix/unistd.h: Move declarations of mktemp and mkstemp to... * stdlib/stdlib.h: ...here. * posix/unistd.h [__USE_XOPEN]: Add prototypes for crypt, setkey, encrypt, and swab. * stdio-common/printf-parse.h (struct printf_spec): Add pa_wchar and pa_wstring. (parse_one_spec): Remove Linux compatibility code. Recognize %C and %S formats. * stdio-common/printf.h: Add PA_WCHAR and PA_WSTRING. * stdio-common/vfprintf.c: Add implementation of %C and %S format. * stdio-common/vfscanf.c: Likewise for scanf. * stdlib/l64a.c: Return value for 0 must be the empty string. * stdlib/stdlib.h: Declare reentrant function from rand49 family only if __USE_REENTRANT. Declare rand48 functions also if __USE_XOPEN. * stdlib/strtol.c: Return 0 and set errno to EINVAL when BASE is not a legal value. Return 0 and set errno to EINVAL when strou* sees negativ number. * stdlib/tst-strtol.c: De-ANSI-fy. Change expected results for test of unsigned function and negative input. * string/stratcliff.c: Prevent warnings. * string.h: Move declaration of swab to <unistd.h>. * string/swab.c: De-ANSI-fy. * sysdeps/posix/cuserid.c: Implement using getpwuid_r. * sysdeps/posix/mkstemp.c: Include <stdlib.h> for prototype. * sysdeps/posix/mktemp.c: Likewise. * sysdeps/stub/mkstemp.c: Likewise. * sysdeps/stub/mktemp.c: Likewise. * sysvipc/sys/ipc.h: Prototypes of ftok have to be of types `const char *' and `int'. * sysvipc/ftok.c: Likewise. Make sure only lower 8 bits of PROJ_ID are used. Sun Nov 3 03:21:28 1996 Heiko Schroeder <Heiko.Schroeder@post.rwth-aachen.de> * locale/programs/ld-numeric.c (numeric_output): Compute idx[0] correctly. Sat Nov 2 17:44:32 1996 Ulrich Drepper <drepper@cygnus.com> * sysdeps/posix/cuserid.c: Use reentrant functions. * manual/users.texi: Tell that cuserid is marked to be withdrawn in XPG4.2. Sat Nov 2 14:26:37 1996 Ulrich Drepper <drepper@cygnus.com> Linus said he will make sure no system call will return a value in -1 ... -4095 as a valid result. * sysdeps/unix/sysv/linux/i386/sysdep.h: Correct test for error. * sysdeps/unix/sysv/linux/i386/syscall.S: Likewise. * sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/m68k/syscall.S: Likewise. Sat Nov 2 16:54:49 1996 NIIBE Yutaka <gniibe@mri.co.jp> * sysdeps/stub/lockfile.c [!USE_IN_LIBIO]: Define weak alias for __funlockfile, not a circular alias. Define __IO_ftrylockfile if USE_IN_LIBIO and __ftrylockfile if not, not vice versa. * sysdeps/unix/sysv/linux/i386/sysdep.S (__errno_location): Make it a weak symbol. * sysdeps/unix/sysv/linux/m68k/sysdep.S (__errno_location): Likewise. Likewise. * crypt/Makefile (rpath-link): Extend search path to current directory.
Diffstat (limited to 'manual')
-rw-r--r--manual/arith.texi126
-rw-r--r--manual/creature.texi26
-rw-r--r--manual/intro.texi46
-rw-r--r--manual/libc.texinfo9
-rw-r--r--manual/llio.texi34
-rw-r--r--manual/math.texi45
-rw-r--r--manual/memory.texi32
-rw-r--r--manual/nss.texi11
-rw-r--r--manual/stdio.texi11
-rw-r--r--manual/time.texi2
-rw-r--r--manual/users.texi5
11 files changed, 278 insertions, 69 deletions
diff --git a/manual/arith.texi b/manual/arith.texi
index b3f646a187..8ea9508e3e 100644
--- a/manual/arith.texi
+++ b/manual/arith.texi
@@ -469,7 +469,8 @@ syntax used for integer constants in C.
Otherwise @var{base} must have a value between @code{2} and @code{35}.
If @var{base} is @code{16}, the digits may optionally be preceded by
-@samp{0x} or @samp{0X}.
+@samp{0x} or @samp{0X}. If base has no legal value the value returned
+is @code{0l} and the global variable @code{errno} is set to @code{EINVAL}.
@item
Any remaining characters in the string. If @var{tailptr} is not a null
@@ -492,6 +493,11 @@ representable because of overflow, @code{strtol} returns either
appropriate for the sign of the value. It also sets @code{errno}
to @code{ERANGE} to indicate there was overflow.
+Because the value @code{0l} is a correct result for @code{strtol} the
+user who is interested in handling errors should set the global variable
+@code{errno} to @code{0} before calling this function. So it can be
+tested whether an error occured or not.
+
There is an example at the end of this section.
@end deftypefun
@@ -504,6 +510,51 @@ value with type @code{unsigned long int}. No @samp{+} or @samp{-} sign
may appear before the number, but the syntax is otherwise the same as
described above for @code{strtol}. The value returned in case of
overflow is @code{ULONG_MAX} (@pxref{Range of Type}).
+
+Like @code{strtol} this function sets @code{errno} and returns the value
+@code{0ul} in case the value for @var{base} is not in the legal range.
+For @code{strtoul} this can happen in another situation. In case the
+number to be converted is negative @code{strtoul} also sets @code{errno}
+to @code{EINVAL} and returns @code{0ul}.
+@end deftypefun
+
+@comment stdlib.h
+@comment BSD
+@deftypefun {long long int} strtoq (const char *@var{string}, char **@var{tailptr}, int @var{base})
+The @code{strtoq} (``string-to-quad-word'') function is like
+@code{strtol} except that is deals with extra long numbers and it
+returns its value with type @code{long long int}.
+
+If the string has valid syntax for an integer but the value is not
+representable because of overflow, @code{strtoq} returns either
+@code{LONG_LONG_MAX} or @code{LONG_LONG_MIN} (@pxref{Range of Type}), as
+appropriate for the sign of the value. It also sets @code{errno} to
+@code{ERANGE} to indicate there was overflow.
+@end deftypefun
+
+@comment stdlib.h
+@comment GNU
+@deftypefun {long long int} strtoll (const char *@var{string}, char **@var{tailptr}, int @var{base})
+@code{strtoll} is only an commonly used other name for the @code{strtoq}
+function. Everything said for @code{strtoq} applies to @code{strtoll}
+as well.
+@end deftypefun
+
+@comment stdlib.h
+@comment BSD
+@deftypefun {unsigned long long int} strtouq (const char *@var{string}, char **@var{tailptr}, int @var{base})
+The @code{strtouq} (``string-to-unsigned-quad-word'') function is like
+@code{strtoul} except that is deals with extra long numbers and it
+returns its value with type @code{unsigned long long int}. The value
+returned in case of overflow is @code{ULONG_LONG_MAX} (@pxref{Range of Type}).
+@end deftypefun
+
+@comment stdlib.h
+@comment GNU
+@deftypefun {unsigned long long int} strtoull (const char *@var{string}, char **@var{tailptr}, int @var{base})
+@code{strtoull} is only an commonly used other name for the @code{strtouq}
+function. Everything said for @code{strtouq} applies to @code{strtoull}
+as well.
@end deftypefun
@comment stdlib.h
@@ -523,6 +574,29 @@ value rather than @code{long int}. The @code{atoi} function is also
considered obsolete; use @code{strtol} instead.
@end deftypefun
+The POSIX locales contain some information about how to format numbers
+(@pxref{General Numeric}). This mainly deals with representing numbers
+for better readability for humans. The functions present so far in this
+section cannot handle numbers in this form.
+
+If this functionality is needed in a program one can use the functions
+from the @code{scanf} family which know about the flag @samp{'} for
+parsing numeric input (@pxref{Numeric Input Conversions}). Sometimes it
+is more desirable to have finer control.
+
+In these situation one could use the function
+@code{__strto@var{XXX}_internal}. @var{XXX} here stands for any of the
+above forms. All numeric conversion functions (including the functions
+to process floating-point numbers) have such a counterpart. The
+difference to the normal for is the extra argument at the end of the
+parameter list. If this value has an non-zero value the handling of
+number grouping is enabled. The advantage from using these functions is
+that the @var{tailptr} parameters allow to determine which part of the
+input is processed. The @code{scanf} functions don't provide this
+information. The drawback of using these functions is that they are not
+portable. They only exist in the GNU C library.
+
+
Here is a function which parses a string as a sequence of integers and
returns the sum of them:
@@ -604,8 +678,8 @@ number, no conversion is performed. In this case, @code{strtod} returns
a value of zero and the value returned in @code{*@var{tailptr}} is the
value of @var{string}.
-In a locale other than the standard @code{"C"} locale, this function may
-recognize additional locale-dependent syntax.
+In a locale other than the standard @code{"C"} or @code{"POSIX"} locale,
+this function may recognize additional locale-dependent syntax.
If the string has valid syntax for a floating-point number but the value
is not representable because of overflow, @code{strtod} returns either
@@ -613,9 +687,55 @@ positive or negative @code{HUGE_VAL} (@pxref{Mathematics}), depending on
the sign of the value. Similarly, if the value is not representable
because of underflow, @code{strtod} returns zero. It also sets @code{errno}
to @code{ERANGE} if there was overflow or underflow.
+
+Since the value zero which is returned in the error case is also a valid
+result the user should set the global variable @code{errno} to null
+before calling this function. So one can test for failures after the
+call since all failures set @code{errno} to a non-zero value.
@end deftypefun
@comment stdlib.h
+@comment GNU
+@deftypefun float strtof (const char *@var{string}, char **@var{tailptr})
+This function is similar to the @code{strtod} function but it returns a
+@code{float} value instead of a @code{double} value. If the precision
+of a @code{float} value is sufficent this function should be used since
+it is much faster than @code{strtod} on some architectures. The reasons
+are obvious: @w{IEEE 754} defines @code{float} to have a mantissa of 23
+bits while @code{double} has 53 bits and every additional bit of
+precision can require additional computation.
+
+If the string has valid syntax for a floating-point number but the value
+is not representable because of overflow, @code{strtof} returns either
+positive or negative @code{HUGE_VALf} (@pxref{Mathematics}), depending on
+the sign of the value.
+
+This function is a GNU extension.
+@end deftypefun
+
+@comment stdlib.h
+@comment GNU
+@deftypefun {long double} strtold (const char *@var{string}, char **@var{tailptr})
+This function is similar to the @code{strtod} function but it returns a
+@code{long double} value instead of a @code{double} value. It should be
+used when high presision is used. On systems which define a @code{long
+double} type (i.e., on which it is not the same as @code{double})
+running this function might take significently more time since more bits
+of precision are required.
+
+If the string has valid syntax for a floating-point number but the value
+is not representable because of overflow, @code{strtold} returns either
+positive or negative @code{HUGE_VALl} (@pxref{Mathematics}), depending on
+the sign of the value.
+
+This function is a GNU extension.
+@end deftypefun
+
+As for the integer parsing functions there are additional functions
+which will handle numbers represented using the grouping scheme of the
+current locale (@pxref{Parsing of Integers}).
+
+@comment stdlib.h
@comment ANSI
@deftypefun double atof (const char *@var{string})
This function is similar to the @code{strtod} function, except that it
diff --git a/manual/creature.texi b/manual/creature.texi
index 6b4d42fbe9..37dee54b56 100644
--- a/manual/creature.texi
+++ b/manual/creature.texi
@@ -67,15 +67,31 @@ the normal C library.
@comment GNU
@defvr 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.
+@end defvr
+
+@comment (none)
+@comment XOPEN
+@defvr 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 @code{_POSIX_SOURCE} and
+@code{_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 @code{_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.
@end defvr
@comment (none)
@comment GNU
@defvr 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 @code{_GNU_SOURCE} but make the
BSD definitions take precedence over the POSIX definitions, use this
@@ -96,8 +112,8 @@ get very strange errors at run time.
@comment (none)
@comment GNU
@defvr Macro _REENTRANT,_THREAD_SAFE
-If you define this macro, reentrant versions of several functions get
-declared. Some of the functions is specified in POSIX.1c but many others
+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.
diff --git a/manual/intro.texi b/manual/intro.texi
index 19f04a1474..382f35c039 100644
--- a/manual/intro.texi
+++ b/manual/intro.texi
@@ -78,11 +78,11 @@ standards each function or symbol comes from.
@menu
* ANSI C:: The American National Standard for the
- C programming language.
+ C programming language.
* POSIX:: The IEEE 1003 standards for operating
- systems.
+ systems.
* Berkeley Unix:: BSD and SunOS.
-* SVID:: The System V Interface Description.
+* SVID:: The System V Interface Description.
@end menu
@node ANSI C, POSIX, , Standards and Portability
@@ -152,7 +152,7 @@ pattern matching facilities (@pxref{Pattern Matching}).
@comment Roland sez:
@comment The GNU C library as it stands conforms to 1003.2 draft 11, which
@comment specifies:
-@comment
+@comment
@comment Several new macros in <limits.h>.
@comment popen, pclose
@comment <regex.h> (which is not yet fully implemented--wait on this)
@@ -210,7 +210,7 @@ the GNU C library.
@menu
* Header Files:: How to include the header files in your
- programs.
+ programs.
* Macro Definitions:: Some functions in the library may really
be implemented as macros.
* Reserved Names:: The C standard reserves some names for
@@ -332,7 +332,7 @@ function---perhaps to make your program easier to debug. There are
two ways you can do this:
@itemize @bullet
-@item
+@item
You can avoid a macro definition in a specific use by enclosing the name
of the function in parentheses. This works because the name of the
function doesn't appear in a syntactic context where it is recognizable
@@ -429,7 +429,7 @@ raise the possibility of conflict with future versions of the C
or POSIX standards, so you should avoid these names.
@itemize @bullet
-@item
+@item
Names beginning with a capital @samp{E} followed a digit or uppercase
letter may be used for additional error code names. @xref{Error
Reporting}.
@@ -526,11 +526,11 @@ Here is an overview of the contents of the remaining chapters of
this manual.
@itemize @bullet
-@item
+@item
@ref{Error Reporting}, describes how errors detected by the library
are reported.
-@item
+@item
@ref{Language Features}, contains information about library support for
standard parts of the C language, including things like the @code{sizeof}
operator and the symbolic constant @code{NULL}, how to write functions
@@ -539,18 +539,18 @@ ranges and other properties of the numerical types. There is also a simple
debugging mechanism which allows you to put assertions in your code, and
have diagnostic messages printed if the tests fail.
-@item
+@item
@ref{Memory Allocation}, describes the GNU library's facilities for
dynamic allocation of storage. If you do not know in advance how much
storage your program needs, you can allocate it dynamically instead,
and manipulate it via pointers.
-@item
+@item
@ref{Character Handling}, contains information about character
classification functions (such as @code{isspace}) and functions for
performing case conversion.
-@item
+@item
@ref{String and Array Utilities}, has descriptions of functions for
manipulating strings (null-terminated character arrays) and general
byte arrays, including operations such as copying and comparison.
@@ -595,7 +595,7 @@ Internet host addressing and how to use the system network databases.
attributes of a terminal device. If you want to disable echo of
characters typed by the user, for example, read this chapter.
-@item
+@item
@ref{Mathematics}, contains information about the math library
functions. These include things like random-number generators and
remainder functions on integers as well as the usual trigonometric and
@@ -606,7 +606,7 @@ exponential functions on floating-point numbers.
for simple arithmetic, analysis of floating-point values, and reading
numbers from strings.
-@item
+@item
@ref{Searching and Sorting}, contains information about functions
for searching and sorting arrays. You can use these functions on any
kind of array by providing an appropriate comparison function.
@@ -619,13 +619,13 @@ and shell file name patterns, and for expanding words as the shell does.
@ref{Date and Time}, describes functions for measuring both calendar time
and CPU time, as well as functions for setting alarms and timers.
-@item
+@item
@ref{Extended Characters}, contains information about manipulating
characters and strings using character sets larger than will fit in
-the usual @code{char} data type.
+the usual @code{char} data type.
-@item
-@ref{Locales}, describes how selecting a particular country
+@item
+@ref{Locales}, describes how selecting a particular country
or language affects the behavior of the library. For example, the locale
affects collation sequences for strings and how monetary values are
formatted.
@@ -645,7 +645,7 @@ critical sections of your program.
@ref{Process Startup}, tells how your programs can access their
command-line arguments and environment variables.
-@item
+@item
@ref{Processes}, contains information about how to start new processes
and run programs.
@@ -656,6 +656,12 @@ interest if you are writing a shell or other program which handles job
control specially.
@item
+@ref{Name Service Switch}, describes the services which are available
+for looking up names in the system databases, how to determine which
+service is used for which database, and how these services are
+implemented so that contributors can design their own services.
+
+@item
@ref{User Database}, and @ref{Group Database}, tell you how to access
the system user and group databases.
@@ -664,7 +670,7 @@ the system user and group databases.
about the hardware and software configuration your program is executing
under.
-@item
+@item
@ref{System Configuration}, tells you how you can get information about
various operating system limits. Most of these parameters are provided for
compatibility with POSIX.
diff --git a/manual/libc.texinfo b/manual/libc.texinfo
index 773859318d..80eb4965f7 100644
--- a/manual/libc.texinfo
+++ b/manual/libc.texinfo
@@ -13,7 +13,7 @@
@c sold 0.06/1.09, print run out 21may96
@set EDITION 0.07 DRAFT
@set VERSION 2.00 Beta
-@set UPDATED 16 Aug 1996
+@set UPDATED 4 Oct 1996
@set ISBN 1-882114-53-1
@ifinfo
@@ -988,12 +988,7 @@ Porting the GNU C Library
@node Concept Index, Type Index, Copying, Top
@unnumbered Concept Index
-@comment Could somebody with better texinfo knowledge look into this?
-@comment When I comment out the following line I get
-@comment Misplaced `{'.
-@comment Misplaced `}'.
-@comment This happens even if the libc.cp file is empty.
-@comment @printindex cp
+@printindex cp
@node Type Index, Function Index, Concept Index, Top
@unnumbered Type Index
diff --git a/manual/llio.texi b/manual/llio.texi
index 6a5a5d27e0..7891ee66e0 100644
--- a/manual/llio.texi
+++ b/manual/llio.texi
@@ -31,10 +31,10 @@ directly.)
@menu
* Opening and Closing Files:: How to open and close file
- descriptors.
+ descriptors.
* I/O Primitives:: Reading and writing data.
* File Position Primitive:: Setting a descriptor's file
- position.
+ position.
* Descriptors and Streams:: Converting descriptor to stream
or vice-versa.
* Stream/Descriptor Precautions:: Precautions needed if you use both
@@ -47,7 +47,7 @@ directly.)
file descriptors.
* Descriptor Flags:: Fcntl commands for manipulating
flags associated with file
- descriptors.
+ descriptors.
* File Status Flags:: Fcntl commands for manipulating
flags associated with open files.
* File Locks:: Fcntl commands for implementing
@@ -164,7 +164,7 @@ The function @code{close} closes the file descriptor @var{filedes}.
Closing a file has the following consequences:
@itemize @bullet
-@item
+@item
The file descriptor is deallocated.
@item
@@ -195,7 +195,7 @@ TEMP_FAILURE_RETRY (close (desc));
@item ENOSPC
@itemx EIO
@itemx EDQUOT
-When the file is accessed by NFS, these errors from @code{write} can sometimes
+When the file is accessed by NFS, these errors from @code{write} can sometimes
not be detected until @code{close}. @xref{I/O Primitives}, for details
on their meaning.
@end table
@@ -322,7 +322,7 @@ efficient for the system to batch up consecutive writes and do them all
at once when convenient. Normally they will always be written to disk
within a minute or less.)
@c !!! xref fsync
-You can use the @code{O_FSYNC} open mode to make @code{write} always
+You can use the @code{O_FSYNC} open mode to make @code{write} always
store the data to disk before returning; @pxref{Operating Modes}.
In the case of an error, @code{write} returns @code{-1}. The following
@@ -431,7 +431,7 @@ file position. This count may be positive or negative.
Specifies that @var{whence} is a count of characters from the end of
the file. A negative count specifies a position within the current
extent of the file; a positive count specifies a position past the
-current end. If you set the position past the current end, and
+current end. If you set the position past the current end, and
actually write data, you will extend the file with zeros up to that
position.@end table
@@ -482,10 +482,10 @@ streams instead of file descriptors.
@end deftypefun
You can have multiple descriptors for the same file if you open the file
-more than once, or if you duplicate a descriptor with @code{dup}.
+more than once, or if you duplicate a descriptor with @code{dup}.
Descriptors that come from separate calls to @code{open} have independent
file positions; using @code{lseek} on one descriptor has no effect on the
-other. For example,
+other. For example,
@smallexample
@group
@@ -656,7 +656,7 @@ the stream.
@menu
* Linked Channels:: Dealing with channels sharing a file position.
* Independent Channels:: Dealing with separately opened, unlinked channels.
-* Cleaning Streams:: Cleaning a stream makes it safe to use
+* Cleaning Streams:: Cleaning a stream makes it safe to use
another channel.
@end menu
@@ -914,7 +914,7 @@ the @code{select} with a newly calculated timeout based on the current
time. See the example below. See also @ref{Interrupted Primitives}.
If an error occurs, @code{select} returns @code{-1} and does not modify
-the argument file descriptor sets. The following @code{errno} error
+the argument file descriptor sets. The following @code{errno} error
conditions are defined for this function:
@table @code
@@ -1164,7 +1164,7 @@ The symbols in this section are defined in the header file
@deftypevr Macro int F_GETFD
This macro is used as the @var{command} argument to @code{fcntl}, to
specify that it should return the file descriptor flags associated
-with the @var{filedes} argument.
+with the @var{filedes} argument.
The normal return value from @code{fcntl} with this command is a
nonnegative number which can be interpreted as the bitwise OR of the
@@ -1223,7 +1223,7 @@ without altering any other flags:
@smallexample
/* @r{Set the @code{FD_CLOEXEC} flag of @var{desc} if @var{value} is nonzero,}
@r{or clear the flag if @var{value} is 0.}
- @r{Return 0 on success, or -1 on error with @code{errno} set.} */
+ @r{Return 0 on success, or -1 on error with @code{errno} set.} */
int
set_cloexec_flag (int desc, int value)
@@ -1523,7 +1523,7 @@ resulting in your data appearing someplace before the real end of file.
@comment fcntl.h
@comment POSIX.1
-@deftypevr O_NONBLOCK
+@deftypevr Macro int O_NONBLOCK
The bit that enables nonblocking mode for the file. If this bit is set,
@code{read} requests on the file can return immediately with a failure
status if there is no input immediately available, instead of blocking.
@@ -1638,7 +1638,7 @@ altering any other flags:
@group
/* @r{Set the @code{O_NONBLOCK} flag of @var{desc} if @var{value} is nonzero,}
@r{or clear the flag if @var{value} is 0.}
- @r{Return 0 on success, or -1 on error with @code{errno} set.} */
+ @r{Return 0 on success, or -1 on error with @code{errno} set.} */
int
set_nonblock_flag (int desc, int value)
@@ -1891,7 +1891,7 @@ for billing purposes.
Having multiple copies of the program simultaneously writing to the
file could cause the contents of the file to become mixed up. But
you can prevent this kind of problem by setting a write lock on the
-file before actually writing to the file.
+file before actually writing to the file.
If the program also needs to read the file and wants to make sure that
the contents of the file are in a consistent state, then it can also use
@@ -1920,7 +1920,7 @@ where @code{select} would report the socket as having an ``exceptional
condition''. @xref{Waiting for I/O}.)
If the file descriptor corresponds to a terminal device, then @code{SIGIO}
-signals are sent to the foreground process group of the terminal.
+signals are sent to the foreground process group of the terminal.
@xref{Job Control}.
@pindex fcntl.h
diff --git a/manual/math.texi b/manual/math.texi
index a97d76c2a1..7de6d169ac 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -36,8 +36,8 @@ over a domain that is only a subset of real numbers. For example, the
@code{1}. If you pass an argument to one of these functions that is
outside the domain over which it is defined, the function sets
@code{errno} to @code{EDOM} to indicate a @dfn{domain error}. On
-machines that support IEEE floating point, functions reporting error
-@code{EDOM} also return a NaN.
+machines that support @w{IEEE 754} floating point, functions reporting
+error @code{EDOM} also return a NaN.
Some of these functions are defined mathematically to result in a
complex value over parts of their domains. The most familiar example of
@@ -59,8 +59,8 @@ instead. In this case, @code{errno} might or might not be
set to @code{ERANGE}.
The only completely reliable way to check for domain and range errors is
-to set @code{errno} to @code{0} before you call the mathematical function
-and test @code{errno} afterward. As a consequence of this use of
+to set @code{errno} to @code{0} before you call the mathematical function
+and test @code{errno} afterward. As a consequence of this use of
@code{errno}, use of the mathematical functions is not reentrant if you
check for errors.
@@ -74,14 +74,37 @@ Handling}, for more information about signals.)
@comment ANSI
@deftypevr Macro double HUGE_VAL
An expression representing a particular very large number. On machines
-that use IEEE floating point format, the value is ``infinity''. On
-other machines, it's typically the largest positive number that can be
-represented.
+that use @w{IEEE 754} floating point format, the value is ``infinity''.
+On other machines, it's typically the largest positive number that can
+be represented.
-The value of this macro is used as the return value from various
-mathematical functions in overflow situations.
+The value of this macro is used as the return value from various
+mathematical @code{double} returning functions in overflow situations.
@end deftypevr
+@comment math.h
+@comment GNU
+@deftypevr Macro float HUGE_VALf
+This macro is similar to the @code{HUGE_VAL} macro except that it is
+used by functions returning @code{float} values.
+
+This macro is a GNU extension.
+@end deftypevr
+
+@comment math.h
+@comment GNU
+@deftypevr Macro {long double} HUGE_VALl
+This macro is similar to the @code{HUGE_VAL} macro except that it is
+used by functions returning @code{long double} values. The value is
+only different from @code{HUGE_VAL} if the architecture really supports
+@code{long double} values.
+
+This macro is a GNU extension.
+@end deftypevr
+
+
+@comment
+
For more information about floating-point representations and limits,
see @ref{Floating Point Parameters}. In particular, the macro
@code{DBL_MAX} might be more appropriate than @code{HUGE_VAL} for many
@@ -343,7 +366,7 @@ of @var{x} is too large; that is, if overflow occurs.
@comment math.h
@comment ANSI
@deftypefun double tanh (double @var{x})
-This function returns the hyperbolic tangent of @var{x}, whose
+This function returns the hyperbolic tangent of @var{x}, whose
mathematical definition is @w{@code{sinh (@var{x}) / cosh (@var{x})}}.
@end deftypefun
@@ -497,7 +520,7 @@ restore that state.
@deftypefun {void *} setstate (void *@var{state})
The @code{setstate} function restores the random number state
information @var{state}. The argument must have been the result of
-a previous call to @var{initstate} or @var{setstate}.
+a previous call to @var{initstate} or @var{setstate}.
The return value is the previous value of the state information array.
You can use thise value later as an argument to @code{setstate} to
diff --git a/manual/memory.texi b/manual/memory.texi
index 343da0bb7e..6cbe77ff0e 100644
--- a/manual/memory.texi
+++ b/manual/memory.texi
@@ -1093,6 +1093,22 @@ It adds a single byte containing @var{c} to the growing object.
@comment obstack.h
@comment GNU
+@deftypefun void obstack_ptr_grow (struct obstack *@var{obstack-ptr}, void *@var{data})
+Adding the value of a pointer one can use the function
+@code{obstack_ptr_grow}. It adds @code{sizeof (void *)} bytes
+containing the value of @var{data}.
+@end deftypefun
+
+@comment obstack.h
+@comment GNU
+@deftypefun void obstack_int_grow (struct obstack *@var{obstack-ptr}, int @var{data})
+A single value of type @code{int} can be added by using the
+@code{obstack_int_grow} function. It adds @code{sizeof (int)} bytes to
+the growing object and initializes them with the value of @var{data}.
+@end deftypefun
+
+@comment obstack.h
+@comment GNU
@deftypefun {void *} obstack_finish (struct obstack *@var{obstack-ptr})
When you are finished growing the object, use the function
@code{obstack_finish} to close it off and return its final address.
@@ -1173,6 +1189,22 @@ character @var{c} to the growing object in obstack @var{obstack-ptr}.
@comment obstack.h
@comment GNU
+@deftypefun void obstack_ptr_grow_fast (struct obstack *@var{obstack-ptr}, void *@var{data})
+The function @code{obstack_ptr_grow_fast} adds @code{sizeof (void *)}
+bytes containing the value of @var{data} to the growing object in
+obstack @var{obstack-ptr}.
+@end deftypefun
+
+@comment obstack.h
+@comment GNU
+@deftypefun void obstack_int_grow_fast (struct obstack *@var{obstack-ptr}, int @var{data})
+The function @code{obstack_int_grow_fast} adds @code{sizeof (int)} bytes
+containing the value of @var{data} to the growing object in obstack
+@var{obstack-ptr}.
+@end deftypefun
+
+@comment obstack.h
+@comment GNU
@deftypefun void obstack_blank_fast (struct obstack *@var{obstack-ptr}, int @var{size})
The function @code{obstack_blank_fast} adds @var{size} bytes to the
growing object in obstack @var{obstack-ptr} without initializing them.
diff --git a/manual/nss.texi b/manual/nss.texi
index 6d9d831a18..6773fc4f16 100644
--- a/manual/nss.texi
+++ b/manual/nss.texi
@@ -3,6 +3,9 @@
@node Name Service Switch
@chapter System Databases and Name Service Switch
+@cindex Name Service Switch
+@cindex NSS
+@cindex databses
Various functions in the C Library need to be configured to work
correctly in the local environment. Traditionally, this was done by
using files (e.g., @file{/etc/passwd}), but other nameservices (line the
@@ -395,10 +398,10 @@ change of the return value. While the user-level function returns a
pointer to the result the reentrant function return an @code{enum
nss_status} value:
-@cindex NSS_STATUS_TRYAGAIN
-@cindex NSS_STATUS_UNAVAIL
-@cindex NSS_STATUS_NOTFOUND
-@cindex NSS_STATUS_SUCCESS
+@vindex NSS_STATUS_TRYAGAIN
+@vindex NSS_STATUS_UNAVAIL
+@vindex NSS_STATUS_NOTFOUND
+@vindex NSS_STATUS_SUCCESS
@ftable @code
@item NSS_STATUS_TRYAGAIN
numeric value @code{-2}
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 5ebc5c1781..c666f5e7db 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -2438,6 +2438,17 @@ Specifies that the argument is of type @code{double *}.
Specifies that the argument is of type @code{long double *}.
@end table
+For all the above number parsing formats there is an additional optional
+flag @samp{'}. When this flag is given the @code{scanf} function
+expects the number represented in the input string to be formatted
+according to the grouping rules of the currently selected locale
+(@pxref{General Numeric}).
+
+If the @code{"C"} or @code{"POSIX"} locale is selected there is no
+difference. But for a locale which specifies values for the appropriate
+fields in the locale the input must have the correct form in the input.
+Otherwise the longest prefix with a correct form is processed.
+
@node String Input Conversions
@subsection String Input Conversions
diff --git a/manual/time.texi b/manual/time.texi
index 18224a5520..6bbb15e4d6 100644
--- a/manual/time.texi
+++ b/manual/time.texi
@@ -1024,7 +1024,7 @@ community of volunteers and put in the public domain.
@comment time.h
@comment POSIX.1
-@deftypevar char * tzname [2]
+@deftypevar {char *} tzname [2]
The array @code{tzname} contains two strings, which are the standard
names of the pair of time zones (standard and daylight
saving) that the user has selected. @code{tzname[0]} is the name of
diff --git a/manual/users.texi b/manual/users.texi
index e20c90ddaa..ce6d526b4a 100644
--- a/manual/users.texi
+++ b/manual/users.texi
@@ -685,6 +685,9 @@ at least @code{L_cuserid} characters; the string is returned in this
array. Otherwise, a pointer to a string in a static area is returned.
This string is statically allocated and might be overwritten on
subsequent calls to this function or to @code{getlogin}.
+
+The use of this function is deprecated since it is marked to be
+withdrawn in XPG4.2 and it is already removed in POSIX.1.
@end deftypefun
@comment stdio.h
@@ -1158,7 +1161,7 @@ This function closes the internal stream used by @code{getgrent} or
@node Netgroup Data, Lookup Netgroup, Netgroup Database, Netgroup Database
@subsection Netgroup Data
-@cindex{Netgroup}
+@cindex Netgroup
Sometimes it is useful group users according to other criterias like the
ones used in the @xref{Group Database}. E.g., it is useful to associate
a certain group of users with a certain machine. On the other hand