1995-02-18 09:27:10 +08:00
|
|
|
@node Introduction, Error Reporting, Top, Top
|
|
|
|
@chapter Introduction
|
1998-07-13 20:29:13 +08:00
|
|
|
@c %MENU% Purpose of the GNU C Library
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
The C language provides no built-in facilities for performing such
|
|
|
|
common operations as input/output, memory management, string
|
|
|
|
manipulation, and the like. Instead, these facilities are defined
|
|
|
|
in a standard @dfn{library}, which you compile and link with your
|
|
|
|
programs.
|
|
|
|
@cindex library
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{}, described in this document, defines all of the
|
1996-12-08 16:01:13 +08:00
|
|
|
library functions that are specified by the @w{ISO C} standard, as well as
|
1995-02-18 09:27:10 +08:00
|
|
|
additional features specific to POSIX and other derivatives of the Unix
|
2012-03-08 09:27:38 +08:00
|
|
|
operating system, and extensions specific to @gnusystems{}.
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
The purpose of this manual is to tell you how to use the facilities
|
2012-02-28 22:44:20 +08:00
|
|
|
of @theglibc{}. We have mentioned which features belong to which
|
1997-10-15 13:34:02 +08:00
|
|
|
standards to help you identify things that are potentially non-portable
|
1995-02-18 09:27:10 +08:00
|
|
|
to other systems. But the emphasis in this manual is not on strict
|
|
|
|
portability.
|
|
|
|
|
|
|
|
@menu
|
|
|
|
* Getting Started:: What this manual is for and how to use it.
|
|
|
|
* Standards and Portability:: Standards and sources upon which the GNU
|
|
|
|
C library is based.
|
|
|
|
* Using the Library:: Some practical uses for the library.
|
|
|
|
* Roadmap to the Manual:: Overview of the remaining chapters in
|
|
|
|
this manual.
|
|
|
|
@end menu
|
|
|
|
|
|
|
|
@node Getting Started, Standards and Portability, , Introduction
|
|
|
|
@section Getting Started
|
|
|
|
|
|
|
|
This manual is written with the assumption that you are at least
|
|
|
|
somewhat familiar with the C programming language and basic programming
|
1996-12-08 16:01:13 +08:00
|
|
|
concepts. Specifically, familiarity with ISO standard C
|
|
|
|
(@pxref{ISO C}), rather than ``traditional'' pre-ISO C dialects, is
|
1995-02-18 09:27:10 +08:00
|
|
|
assumed.
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} includes several @dfn{header files}, each of which
|
1995-02-18 09:27:10 +08:00
|
|
|
provides definitions and declarations for a group of related facilities;
|
|
|
|
this information is used by the C compiler when processing your program.
|
|
|
|
For example, the header file @file{stdio.h} declares facilities for
|
|
|
|
performing input and output, and the header file @file{string.h}
|
|
|
|
declares string processing utilities. The organization of this manual
|
|
|
|
generally follows the same division as the header files.
|
|
|
|
|
|
|
|
If you are reading this manual for the first time, you should read all
|
|
|
|
of the introductory material and skim the remaining chapters. There are
|
2012-02-28 22:44:20 +08:00
|
|
|
a @emph{lot} of functions in @theglibc{} and it's not realistic to
|
1995-02-18 09:27:10 +08:00
|
|
|
expect that you will be able to remember exactly @emph{how} to use each
|
|
|
|
and every one of them. It's more important to become generally familiar
|
|
|
|
with the kinds of facilities that the library provides, so that when you
|
|
|
|
are writing your programs you can recognize @emph{when} to make use of
|
|
|
|
library functions, and @emph{where} in this manual you can find more
|
|
|
|
specific information about them.
|
|
|
|
|
|
|
|
|
|
|
|
@node Standards and Portability, Using the Library, Getting Started, Introduction
|
|
|
|
@section Standards and Portability
|
|
|
|
@cindex standards
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
This section discusses the various standards and other sources that @theglibc{}
|
|
|
|
is based upon. These sources include the @w{ISO C} and
|
1995-02-18 09:27:10 +08:00
|
|
|
POSIX standards, and the System V and Berkeley Unix implementations.
|
|
|
|
|
|
|
|
The primary focus of this manual is to tell you how to make effective
|
2012-02-28 22:44:20 +08:00
|
|
|
use of the @glibcadj{} facilities. But if you are concerned about
|
1995-02-18 09:27:10 +08:00
|
|
|
making your programs compatible with these standards, or portable to
|
|
|
|
operating systems other than GNU, 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.
|
|
|
|
|
|
|
|
@xref{Library Summary}, 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.
|
|
|
|
|
|
|
|
@menu
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
* ISO C:: The international standard for the C
|
1996-12-08 16:01:13 +08:00
|
|
|
programming language.
|
|
|
|
* POSIX:: The ISO/IEC 9945 (aka IEEE 1003) standards
|
|
|
|
for operating systems.
|
1995-02-18 09:27:10 +08:00
|
|
|
* Berkeley Unix:: BSD and SunOS.
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
* SVID:: The System V Interface Description.
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
* XPG:: The X/Open Portability Guide.
|
1995-02-18 09:27:10 +08:00
|
|
|
@end menu
|
|
|
|
|
1996-12-08 16:01:13 +08:00
|
|
|
@node ISO C, POSIX, , Standards and Portability
|
|
|
|
@subsection ISO C
|
|
|
|
@cindex ISO C
|
1995-02-18 09:27:10 +08:00
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} is compatible with the C standard adopted by the
|
1995-02-18 09:27:10 +08:00
|
|
|
American National Standards Institute (ANSI):
|
1996-12-08 16:01:13 +08:00
|
|
|
@cite{American National Standard X3.159-1989---``ANSI C''} and later
|
1996-12-20 09:39:50 +08:00
|
|
|
by the International Standardization Organization (ISO):
|
1996-12-08 16:01:13 +08:00
|
|
|
@cite{ISO/IEC 9899:1990, ``Programming languages---C''}.
|
|
|
|
We here refer to the standard as @w{ISO C} since this is the more
|
|
|
|
general standard in respect of ratification.
|
2012-02-28 22:44:20 +08:00
|
|
|
The header files and library facilities that make up @theglibc{} are
|
1996-12-08 16:01:13 +08:00
|
|
|
a superset of those specified by the @w{ISO C} standard.@refill
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
@pindex gcc
|
1996-12-08 16:01:13 +08:00
|
|
|
If you are concerned about strict adherence to the @w{ISO C} standard, you
|
1995-02-18 09:27:10 +08:00
|
|
|
should use the @samp{-ansi} option when you compile your programs with
|
1996-12-08 16:01:13 +08:00
|
|
|
the GNU C compiler. This tells the compiler to define @emph{only} ISO
|
1995-02-18 09:27:10 +08:00
|
|
|
standard features from the library header files, unless you explicitly
|
|
|
|
ask for additional features. @xref{Feature Test Macros}, for
|
|
|
|
information on how to do this.
|
|
|
|
|
1996-12-08 16:01:13 +08:00
|
|
|
Being able to restrict the library to include only @w{ISO C} features is
|
|
|
|
important because @w{ISO C} puts limitations on what names can be defined
|
1995-02-18 09:27:10 +08:00
|
|
|
by the library implementation, and the GNU extensions don't fit these
|
|
|
|
limitations. @xref{Reserved Names}, for more information about these
|
|
|
|
restrictions.
|
|
|
|
|
|
|
|
This manual does not attempt to give you complete details on the
|
1996-12-08 16:01:13 +08:00
|
|
|
differences between @w{ISO C} and older dialects. It gives advice on how
|
1995-02-18 09:27:10 +08:00
|
|
|
to write programs to work portably under multiple C dialects, but does
|
|
|
|
not aim for completeness.
|
|
|
|
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
|
1996-12-08 16:01:13 +08:00
|
|
|
@node POSIX, Berkeley Unix, ISO C, Standards and Portability
|
1995-02-18 09:27:10 +08:00
|
|
|
@subsection POSIX (The Portable Operating System Interface)
|
|
|
|
@cindex POSIX
|
|
|
|
@cindex POSIX.1
|
|
|
|
@cindex IEEE Std 1003.1
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
@cindex ISO/IEC 9945-1
|
1995-02-18 09:27:10 +08:00
|
|
|
@cindex POSIX.2
|
|
|
|
@cindex IEEE Std 1003.2
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
@cindex ISO/IEC 9945-2
|
1995-02-18 09:27:10 +08:00
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} is also compatible with the ISO @dfn{POSIX} family of
|
1995-02-18 09:27:10 +08:00
|
|
|
standards, known more formally as the @dfn{Portable Operating System
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
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.
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
The library facilities specified by the POSIX standards are a superset
|
1996-12-08 16:01:13 +08:00
|
|
|
of those required by @w{ISO C}; POSIX specifies additional features for
|
|
|
|
@w{ISO C} functions, as well as specifying new additional functions. In
|
1995-02-18 09:27:10 +08:00
|
|
|
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 which can run in many diverse operating
|
|
|
|
system environments.@refill
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} implements all of the functions specified in
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
@cite{ISO/IEC 9945-1:1996, the POSIX System Application Program
|
1995-02-18 09:27:10 +08:00
|
|
|
Interface}, commonly referred to as POSIX.1. The primary extensions to
|
1996-12-08 16:01:13 +08:00
|
|
|
the @w{ISO C} facilities specified by this standard include file system
|
1995-02-18 09:27:10 +08:00
|
|
|
interface primitives (@pxref{File System Interface}), device-specific
|
|
|
|
terminal control functions (@pxref{Low-Level Terminal Interface}), and
|
|
|
|
process control functions (@pxref{Processes}).
|
|
|
|
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
Some facilities from @cite{ISO/IEC 9945-2:1993, the POSIX Shell and
|
2012-02-28 22:44:20 +08:00
|
|
|
Utilities standard} (POSIX.2) are also implemented in @theglibc{}.
|
1995-02-18 09:27:10 +08:00
|
|
|
These include utilities for dealing with regular expressions and other
|
|
|
|
pattern matching facilities (@pxref{Pattern Matching}).
|
|
|
|
|
2014-01-29 15:20:37 +08:00
|
|
|
@menu
|
|
|
|
* POSIX Safety Concepts:: Safety concepts from POSIX.
|
|
|
|
* Unsafe Features:: Features that make functions unsafe.
|
|
|
|
* Conditionally Safe Features:: Features that make functions unsafe
|
|
|
|
in the absence of workarounds.
|
|
|
|
* Other Safety Remarks:: Additional safety features and remarks.
|
|
|
|
@end menu
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
@comment Roland sez:
|
|
|
|
@comment The GNU C library as it stands conforms to 1003.2 draft 11, which
|
|
|
|
@comment specifies:
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@comment
|
1995-02-18 09:27:10 +08:00
|
|
|
@comment Several new macros in <limits.h>.
|
|
|
|
@comment popen, pclose
|
|
|
|
@comment <regex.h> (which is not yet fully implemented--wait on this)
|
|
|
|
@comment fnmatch
|
|
|
|
@comment getopt
|
|
|
|
@comment <glob.h>
|
|
|
|
@comment <wordexp.h> (not yet implemented)
|
|
|
|
@comment confstr
|
|
|
|
|
2014-01-29 15:20:37 +08:00
|
|
|
@node POSIX Safety Concepts, Unsafe Features, , POSIX
|
|
|
|
@subsubsection POSIX Safety Concepts
|
|
|
|
@cindex POSIX Safety Concepts
|
|
|
|
|
|
|
|
This manual documents various safety properties of @glibcadj{}
|
|
|
|
functions, in lines that follow their prototypes and look like:
|
|
|
|
|
|
|
|
@sampsafety{@prelim{}@mtsafe{}@assafe{}@acsafe{}}
|
|
|
|
|
|
|
|
The properties are assessed according to the criteria set forth in the
|
|
|
|
POSIX standard for such safety contexts as Thread-, Async-Signal- and
|
|
|
|
Async-Cancel- -Safety. Intuitive definitions of these properties,
|
|
|
|
attempting to capture the meaning of the standard definitions, follow.
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
|
|
|
|
@item
|
|
|
|
@cindex MT-Safe
|
|
|
|
@cindex Thread-Safe
|
|
|
|
@code{MT-Safe} or Thread-Safe functions are safe to call in the presence
|
|
|
|
of other threads. MT, in MT-Safe, stands for Multi Thread.
|
|
|
|
|
|
|
|
Being MT-Safe does not imply a function is atomic, nor that it uses any
|
|
|
|
of the memory synchronization mechanisms POSIX exposes to users. It is
|
|
|
|
even possible that calling MT-Safe functions in sequence does not yield
|
|
|
|
an MT-Safe combination. For example, having a thread call two MT-Safe
|
|
|
|
functions one right after the other does not guarantee behavior
|
|
|
|
equivalent to atomic execution of a combination of both functions, since
|
|
|
|
concurrent calls in other threads may interfere in a destructive way.
|
|
|
|
|
|
|
|
Whole-program optimizations that could inline functions across library
|
|
|
|
interfaces may expose unsafe reordering, and so performing inlining
|
|
|
|
across the @glibcadj{} interface is not recommended. The documented
|
|
|
|
MT-Safety status is not guaranteed under whole-program optimization.
|
|
|
|
However, functions defined in user-visible headers are designed to be
|
|
|
|
safe for inlining.
|
|
|
|
|
|
|
|
|
|
|
|
@item
|
|
|
|
@cindex AS-Safe
|
|
|
|
@cindex Async-Signal-Safe
|
|
|
|
@code{AS-Safe} or Async-Signal-Safe functions are safe to call from
|
|
|
|
asynchronous signal handlers. AS, in AS-Safe, stands for Asynchronous
|
|
|
|
Signal.
|
|
|
|
|
|
|
|
Many functions that are AS-Safe may set @code{errno}, or modify the
|
|
|
|
floating-point environment, because their doing so does not make them
|
|
|
|
unsuitable for use in signal handlers. However, programs could
|
|
|
|
misbehave should asynchronous signal handlers modify this thread-local
|
|
|
|
state, and the signal handling machinery cannot be counted on to
|
|
|
|
preserve it. Therefore, signal handlers that call functions that may
|
|
|
|
set @code{errno} or modify the floating-point environment @emph{must}
|
|
|
|
save their original values, and restore them before returning.
|
|
|
|
|
|
|
|
|
|
|
|
@item
|
|
|
|
@cindex AC-Safe
|
|
|
|
@cindex Async-Cancel-Safe
|
|
|
|
@code{AC-Safe} or Async-Cancel-Safe functions are safe to call when
|
|
|
|
asynchronous cancellation is enabled. AC in AC-Safe stands for
|
|
|
|
Asynchronous Cancellation.
|
|
|
|
|
|
|
|
The POSIX standard defines only three functions to be AC-Safe, namely
|
|
|
|
@code{pthread_cancel}, @code{pthread_setcancelstate}, and
|
|
|
|
@code{pthread_setcanceltype}. At present @theglibc{} provides no
|
|
|
|
guarantees beyond these three functions, but does document which
|
|
|
|
functions are presently AC-Safe. This documentation is provided for use
|
|
|
|
by @theglibc{} developers.
|
|
|
|
|
|
|
|
Just like signal handlers, cancellation cleanup routines must configure
|
|
|
|
the floating point environment they require. The routines cannot assume
|
|
|
|
a floating point environment, particularly when asynchronous
|
|
|
|
cancellation is enabled. If the configuration of the floating point
|
|
|
|
environment cannot be performed atomically then it is also possible that
|
|
|
|
the environment encountered is internally inconsistent.
|
|
|
|
|
|
|
|
|
|
|
|
@item
|
|
|
|
@cindex MT-Unsafe
|
|
|
|
@cindex Thread-Unsafe
|
|
|
|
@cindex AS-Unsafe
|
|
|
|
@cindex Async-Signal-Unsafe
|
|
|
|
@cindex AC-Unsafe
|
|
|
|
@cindex Async-Cancel-Unsafe
|
|
|
|
@code{MT-Unsafe}, @code{AS-Unsafe}, @code{AC-Unsafe} functions are not
|
|
|
|
safe to call within the safety contexts described above. Calling them
|
|
|
|
within such contexts invokes undefined behavior.
|
|
|
|
|
|
|
|
Functions not explicitly documented as safe in a safety context should
|
|
|
|
be regarded as Unsafe.
|
|
|
|
|
|
|
|
|
|
|
|
@item
|
|
|
|
@cindex Preliminary
|
|
|
|
@code{Preliminary} safety properties are documented, indicating these
|
|
|
|
properties may @emph{not} be counted on in future releases of
|
|
|
|
@theglibc{}.
|
|
|
|
|
|
|
|
Such preliminary properties are the result of an assessment of the
|
|
|
|
properties of our current implementation, rather than of what is
|
|
|
|
mandated and permitted by current and future standards.
|
|
|
|
|
|
|
|
Although we strive to abide by the standards, in some cases our
|
|
|
|
implementation is safe even when the standard does not demand safety,
|
|
|
|
and in other cases our implementation does not meet the standard safety
|
|
|
|
requirements. The latter are most likely bugs; the former, when marked
|
|
|
|
as @code{Preliminary}, should not be counted on: future standards may
|
|
|
|
require changes that are not compatible with the additional safety
|
|
|
|
properties afforded by the current implementation.
|
|
|
|
|
|
|
|
Furthermore, the POSIX standard does not offer a detailed definition of
|
|
|
|
safety. We assume that, by ``safe to call'', POSIX means that, as long
|
|
|
|
as the program does not invoke undefined behavior, the ``safe to call''
|
|
|
|
function behaves as specified, and does not cause other functions to
|
|
|
|
deviate from their specified behavior. We have chosen to use its loose
|
|
|
|
definitions of safety, not because they are the best definitions to use,
|
|
|
|
but because choosing them harmonizes this manual with POSIX.
|
|
|
|
|
|
|
|
Please keep in mind that these are preliminary definitions and
|
|
|
|
annotations, and certain aspects of the definitions are still under
|
|
|
|
discussion and might be subject to clarification or change.
|
|
|
|
|
|
|
|
Over time, we envision evolving the preliminary safety notes into stable
|
|
|
|
commitments, as stable as those of our interfaces. As we do, we will
|
|
|
|
remove the @code{Preliminary} keyword from safety notes. As long as the
|
|
|
|
keyword remains, however, they are not to be regarded as a promise of
|
|
|
|
future behavior.
|
|
|
|
|
|
|
|
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
Other keywords that appear in safety notes are defined in subsequent
|
|
|
|
sections.
|
|
|
|
|
|
|
|
|
|
|
|
@node Unsafe Features, Conditionally Safe Features, POSIX Safety Concepts, POSIX
|
|
|
|
@subsubsection Unsafe Features
|
|
|
|
@cindex Unsafe Features
|
|
|
|
|
|
|
|
Functions that are unsafe to call in certain contexts are annotated with
|
|
|
|
keywords that document their features that make them unsafe to call.
|
|
|
|
AS-Unsafe features in this section indicate the functions are never safe
|
|
|
|
to call when asynchronous signals are enabled. AC-Unsafe features
|
|
|
|
indicate they are never safe to call when asynchronous cancellation is
|
|
|
|
enabled. There are no MT-Unsafe marks in this section.
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
|
|
|
|
@item @code{lock}
|
|
|
|
@cindex lock
|
|
|
|
|
|
|
|
Functions marked with @code{lock} as an AS-Unsafe feature may be
|
|
|
|
interrupted by a signal while holding a non-recursive lock. If the
|
|
|
|
signal handler calls another such function that takes the same lock, the
|
|
|
|
result is a deadlock.
|
|
|
|
|
|
|
|
Functions annotated with @code{lock} as an AC-Unsafe feature may, if
|
|
|
|
cancelled asynchronously, fail to release a lock that would have been
|
|
|
|
released if their execution had not been interrupted by asynchronous
|
|
|
|
thread cancellation. Once a lock is left taken, attempts to take that
|
|
|
|
lock will block indefinitely.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{corrupt}
|
|
|
|
@cindex corrupt
|
|
|
|
|
|
|
|
Functions marked with @code{corrupt} as an AS-Unsafe feature may corrupt
|
|
|
|
data structures and misbehave when they interrupt, or are interrupted
|
|
|
|
by, another such function. Unlike functions marked with @code{lock},
|
|
|
|
these take recursive locks to avoid MT-Safety problems, but this is not
|
|
|
|
enough to stop a signal handler from observing a partially-updated data
|
|
|
|
structure. Further corruption may arise from the interrupted function's
|
|
|
|
failure to notice updates made by signal handlers.
|
|
|
|
|
|
|
|
Functions marked with @code{corrupt} as an AC-Unsafe feature may leave
|
|
|
|
data structures in a corrupt, partially updated state. Subsequent uses
|
|
|
|
of the data structure may misbehave.
|
|
|
|
|
|
|
|
@c A special case, probably not worth documenting separately, involves
|
|
|
|
@c reallocing, or even freeing pointers. Any case involving free could
|
|
|
|
@c be easily turned into an ac-safe leak by resetting the pointer before
|
|
|
|
@c releasing it; I don't think we have any case that calls for this sort
|
|
|
|
@c of fixing. Fixing the realloc cases would require a new interface:
|
|
|
|
@c instead of @code{ptr=realloc(ptr,size)} we'd have to introduce
|
|
|
|
@c @code{acsafe_realloc(&ptr,size)} that would modify ptr before
|
|
|
|
@c releasing the old memory. The ac-unsafe realloc could be implemented
|
|
|
|
@c in terms of an internal interface with this semantics (say
|
|
|
|
@c __acsafe_realloc), but since realloc can be overridden, the function
|
|
|
|
@c we call to implement realloc should not be this internal interface,
|
|
|
|
@c but another internal interface that calls __acsafe_realloc if realloc
|
|
|
|
@c was not overridden, and calls the overridden realloc with async
|
|
|
|
@c cancel disabled. --lxoliva
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{heap}
|
|
|
|
@cindex heap
|
|
|
|
|
|
|
|
Functions marked with @code{heap} may call heap memory management
|
|
|
|
functions from the @code{malloc}/@code{free} family of functions and are
|
|
|
|
only as safe as those functions. This note is thus equivalent to:
|
|
|
|
|
|
|
|
@sampsafety{@asunsafe{@asulock{}}@acunsafe{@aculock{} @acsfd{} @acsmem{}}}
|
|
|
|
|
|
|
|
|
|
|
|
@c Check for cases that should have used plugin instead of or in
|
|
|
|
@c addition to this. Then, after rechecking gettext, adjust i18n if
|
|
|
|
@c needed.
|
|
|
|
@item @code{dlopen}
|
|
|
|
@cindex dlopen
|
|
|
|
|
|
|
|
Functions marked with @code{dlopen} use the dynamic loader to load
|
|
|
|
shared libraries into the current execution image. This involves
|
|
|
|
opening files, mapping them into memory, allocating additional memory,
|
|
|
|
resolving symbols, applying relocations and more, all of this while
|
|
|
|
holding internal dynamic loader locks.
|
|
|
|
|
|
|
|
The locks are enough for these functions to be AS- and AC-Unsafe, but
|
|
|
|
other issues may arise. At present this is a placeholder for all
|
|
|
|
potential safety issues raised by @code{dlopen}.
|
|
|
|
|
|
|
|
@c dlopen runs init and fini sections of the module; does this mean
|
|
|
|
@c dlopen always implies plugin?
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{plugin}
|
|
|
|
@cindex plugin
|
|
|
|
|
|
|
|
Functions annotated with @code{plugin} may run code from plugins that
|
|
|
|
may be external to @theglibc{}. Such plugin functions are assumed to be
|
|
|
|
MT-Safe, AS-Unsafe and AC-Unsafe. Examples of such plugins are stack
|
|
|
|
@cindex NSS
|
|
|
|
unwinding libraries, name service switch (NSS) and character set
|
|
|
|
@cindex iconv
|
|
|
|
conversion (iconv) back-ends.
|
|
|
|
|
|
|
|
Although the plugins mentioned as examples are all brought in by means
|
|
|
|
of dlopen, the @code{plugin} keyword does not imply any direct
|
|
|
|
involvement of the dynamic loader or the @code{libdl} interfaces, those
|
|
|
|
are covered by @code{dlopen}. For example, if one function loads a
|
|
|
|
module and finds the addresses of some of its functions, while another
|
|
|
|
just calls those already-resolved functions, the former will be marked
|
|
|
|
with @code{dlopen}, whereas the latter will get the @code{plugin}. When
|
|
|
|
a single function takes all of these actions, then it gets both marks.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{i18n}
|
|
|
|
@cindex i18n
|
|
|
|
|
|
|
|
Functions marked with @code{i18n} may call internationalization
|
|
|
|
functions of the @code{gettext} family and will be only as safe as those
|
|
|
|
functions. This note is thus equivalent to:
|
|
|
|
|
|
|
|
@sampsafety{@mtsafe{@mtsenv{}}@asunsafe{@asucorrupt{} @ascuheap{} @ascudlopen{}}@acunsafe{@acucorrupt{}}}
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{timer}
|
|
|
|
@cindex timer
|
|
|
|
|
|
|
|
Functions marked with @code{timer} use the @code{alarm} function or
|
|
|
|
similar to set a time-out for a system call or a long-running operation.
|
|
|
|
In a multi-threaded program, there is a risk that the time-out signal
|
|
|
|
will be delivered to a different thread, thus failing to interrupt the
|
|
|
|
intended thread. Besides being MT-Unsafe, such functions are always
|
|
|
|
AS-Unsafe, because calling them in signal handlers may interfere with
|
|
|
|
timers set in the interrupted code, and AC-Unsafe, because there is no
|
|
|
|
safe way to guarantee an earlier timer will be reset in case of
|
|
|
|
asynchronous cancellation.
|
|
|
|
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
|
|
|
|
@node Conditionally Safe Features, Other Safety Remarks, Unsafe Features, POSIX
|
|
|
|
@subsubsection Conditionally Safe Features
|
|
|
|
@cindex Conditionally Safe Features
|
|
|
|
|
|
|
|
For some features that make functions unsafe to call in certain
|
|
|
|
contexts, there are known ways to avoid the safety problem other than
|
|
|
|
refraining from calling the function altogether. The keywords that
|
|
|
|
follow refer to such features, and each of their definitions indicate
|
|
|
|
how the whole program needs to be constrained in order to remove the
|
|
|
|
safety problem indicated by the keyword. Only when all the reasons that
|
|
|
|
make a function unsafe are observed and addressed, by applying the
|
|
|
|
documented constraints, does the function become safe to call in a
|
|
|
|
context.
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
|
|
|
|
@item @code{init}
|
|
|
|
@cindex init
|
|
|
|
|
|
|
|
Functions marked with @code{init} as an MT-Unsafe feature perform
|
|
|
|
MT-Unsafe initialization when they are first called.
|
|
|
|
|
|
|
|
Calling such a function at least once in single-threaded mode removes
|
|
|
|
this specific cause for the function to be regarded as MT-Unsafe. If no
|
|
|
|
other cause for that remains, the function can then be safely called
|
|
|
|
after other threads are started.
|
|
|
|
|
|
|
|
Functions marked with @code{init} as an AS- or AC-Unsafe feature use the
|
|
|
|
internal @code{libc_once} machinery or similar to initialize internal
|
|
|
|
data structures.
|
|
|
|
|
|
|
|
If a signal handler interrupts such an initializer, and calls any
|
|
|
|
function that also performs @code{libc_once} initialization, it will
|
|
|
|
deadlock if the thread library has been loaded.
|
|
|
|
|
|
|
|
Furthermore, if an initializer is partially complete before it is
|
|
|
|
canceled or interrupted by a signal whose handler requires the same
|
|
|
|
initialization, some or all of the initialization may be performed more
|
|
|
|
than once, leaking resources or even resulting in corrupt internal data.
|
|
|
|
|
|
|
|
Applications that need to call functions marked with @code{init} as an
|
|
|
|
AS- or AC-Unsafe feature should ensure the initialization is performed
|
|
|
|
before configuring signal handlers or enabling cancellation, so that the
|
|
|
|
AS- and AC-Safety issues related with @code{libc_once} do not arise.
|
|
|
|
|
|
|
|
@c We may have to extend the annotations to cover conditions in which
|
|
|
|
@c initialization may or may not occur, since an initial call in a safe
|
|
|
|
@c context is no use if the initialization doesn't take place at that
|
|
|
|
@c time: it doesn't remove the risk for later calls.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{race}
|
|
|
|
@cindex race
|
|
|
|
|
|
|
|
Functions annotated with @code{race} as an MT-Safety issue operate on
|
|
|
|
objects in ways that may cause data races or similar forms of
|
|
|
|
destructive interference out of concurrent execution. In some cases,
|
|
|
|
the objects are passed to the functions by users; in others, they are
|
|
|
|
used by the functions to return values to users; in others, they are not
|
|
|
|
even exposed to users.
|
|
|
|
|
|
|
|
We consider access to objects passed as (indirect) arguments to
|
|
|
|
functions to be data race free. The assurance of data race free objects
|
|
|
|
is the caller's responsibility. We will not mark a function as
|
|
|
|
MT-Unsafe or AS-Unsafe if it misbehaves when users fail to take the
|
|
|
|
measures required by POSIX to avoid data races when dealing with such
|
|
|
|
objects. As a general rule, if a function is documented as reading from
|
|
|
|
an object passed (by reference) to it, or modifying it, users ought to
|
|
|
|
use memory synchronization primitives to avoid data races just as they
|
|
|
|
would should they perform the accesses themselves rather than by calling
|
|
|
|
the library function. @code{FILE} streams are the exception to the
|
|
|
|
general rule, in that POSIX mandates the library to guard against data
|
|
|
|
races in many functions that manipulate objects of this specific opaque
|
|
|
|
type. We regard this as a convenience provided to users, rather than as
|
|
|
|
a general requirement whose expectations should extend to other types.
|
|
|
|
|
|
|
|
In order to remind users that guarding certain arguments is their
|
|
|
|
responsibility, we will annotate functions that take objects of certain
|
|
|
|
types as arguments. We draw the line for objects passed by users as
|
|
|
|
follows: objects whose types are exposed to users, and that users are
|
|
|
|
expected to access directly, such as memory buffers, strings, and
|
|
|
|
various user-visible @code{struct} types, do @emph{not} give reason for
|
|
|
|
functions to be annotated with @code{race}. It would be noisy and
|
|
|
|
redundant with the general requirement, and not many would be surprised
|
|
|
|
by the library's lack of internal guards when accessing objects that can
|
|
|
|
be accessed directly by users.
|
|
|
|
|
|
|
|
As for objects that are opaque or opaque-like, in that they are to be
|
|
|
|
manipulated only by passing them to library functions (e.g.,
|
|
|
|
@code{FILE}, @code{DIR}, @code{obstack}, @code{iconv_t}), there might be
|
|
|
|
additional expectations as to internal coordination of access by the
|
|
|
|
library. We will annotate, with @code{race} followed by a colon and the
|
|
|
|
argument name, functions that take such objects but that do not take
|
|
|
|
care of synchronizing access to them by default. For example,
|
|
|
|
@code{FILE} stream @code{unlocked} functions will be annotated, but
|
|
|
|
those that perform implicit locking on @code{FILE} streams by default
|
|
|
|
will not, even though the implicit locking may be disabled on a
|
|
|
|
per-stream basis.
|
|
|
|
|
|
|
|
In either case, we will not regard as MT-Unsafe functions that may
|
|
|
|
access user-supplied objects in unsafe ways should users fail to ensure
|
|
|
|
the accesses are well defined. The notion prevails that users are
|
|
|
|
expected to safeguard against data races any user-supplied objects that
|
|
|
|
the library accesses on their behalf.
|
|
|
|
|
|
|
|
@c The above describes @mtsrace; @mtasurace is described below.
|
|
|
|
|
|
|
|
This user responsibility does not apply, however, to objects controlled
|
|
|
|
by the library itself, such as internal objects and static buffers used
|
|
|
|
to return values from certain calls. When the library doesn't guard
|
|
|
|
them against concurrent uses, these cases are regarded as MT-Unsafe and
|
|
|
|
AS-Unsafe (although the @code{race} mark under AS-Unsafe will be omitted
|
|
|
|
as redundant with the one under MT-Unsafe). As in the case of
|
|
|
|
user-exposed objects, the mark may be followed by a colon and an
|
|
|
|
identifier. The identifier groups all functions that operate on a
|
|
|
|
certain unguarded object; users may avoid the MT-Safety issues related
|
|
|
|
with unguarded concurrent access to such internal objects by creating a
|
|
|
|
non-recursive mutex related with the identifier, and always holding the
|
|
|
|
mutex when calling any function marked as racy on that identifier, as
|
|
|
|
they would have to should the identifier be an object under user
|
|
|
|
control. The non-recursive mutex avoids the MT-Safety issue, but it
|
|
|
|
trades one AS-Safety issue for another, so use in asynchronous signals
|
|
|
|
remains undefined.
|
|
|
|
|
|
|
|
When the identifier relates to a static buffer used to hold return
|
|
|
|
values, the mutex must be held for as long as the buffer remains in use
|
|
|
|
by the caller. Many functions that return pointers to static buffers
|
|
|
|
offer reentrant variants that store return values in caller-supplied
|
|
|
|
buffers instead. In some cases, such as @code{tmpname}, the variant is
|
|
|
|
chosen not by calling an alternate entry point, but by passing a
|
|
|
|
non-@code{NULL} pointer to the buffer in which the returned values are
|
|
|
|
to be stored. These variants are generally preferable in multi-threaded
|
|
|
|
programs, although some of them are not MT-Safe because of other
|
|
|
|
internal buffers, also documented with @code{race} notes.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{const}
|
|
|
|
@cindex const
|
|
|
|
|
|
|
|
Functions marked with @code{const} as an MT-Safety issue non-atomically
|
|
|
|
modify internal objects that are better regarded as constant, because a
|
|
|
|
substantial portion of @theglibc{} accesses them without
|
|
|
|
synchronization. Unlike @code{race}, that causes both readers and
|
|
|
|
writers of internal objects to be regarded as MT-Unsafe and AS-Unsafe,
|
|
|
|
this mark is applied to writers only. Writers remain equally MT- and
|
|
|
|
AS-Unsafe to call, but the then-mandatory constness of objects they
|
|
|
|
modify enables readers to be regarded as MT-Safe and AS-Safe (as long as
|
|
|
|
no other reasons for them to be unsafe remain), since the lack of
|
|
|
|
synchronization is not a problem when the objects are effectively
|
|
|
|
constant.
|
|
|
|
|
|
|
|
The identifier that follows the @code{const} mark will appear by itself
|
|
|
|
as a safety note in readers. Programs that wish to work around this
|
|
|
|
safety issue, so as to call writers, may use a non-recursve
|
|
|
|
@code{rwlock} associated with the identifier, and guard @emph{all} calls
|
|
|
|
to functions marked with @code{const} followed by the identifier with a
|
|
|
|
write lock, and @emph{all} calls to functions marked with the identifier
|
|
|
|
by itself with a read lock. The non-recursive locking removes the
|
|
|
|
MT-Safety problem, but it trades one AS-Safety problem for another, so
|
|
|
|
use in asynchronous signals remains undefined.
|
|
|
|
|
|
|
|
@c But what if, instead of marking modifiers with const:id and readers
|
|
|
|
@c with just id, we marked writers with race:id and readers with ro:id?
|
|
|
|
@c Instead of having to define each instance of “id”, we'd have a
|
|
|
|
@c general pattern governing all such “id”s, wherein race:id would
|
|
|
|
@c suggest the need for an exclusive/write lock to make the function
|
|
|
|
@c safe, whereas ro:id would indicate “id” is expected to be read-only,
|
|
|
|
@c but if any modifiers are called (while holding an exclusive lock),
|
|
|
|
@c then ro:id-marked functions ought to be guarded with a read lock for
|
|
|
|
@c safe operation. ro:env or ro:locale, for example, seems to convey
|
|
|
|
@c more clearly the expectations and the meaning, than just env or
|
|
|
|
@c locale.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{sig}
|
|
|
|
@cindex sig
|
|
|
|
|
|
|
|
Functions marked with @code{sig} as a MT-Safety issue (that implies an
|
|
|
|
identical AS-Safety issue, omitted for brevity) may temporarily install
|
|
|
|
a signal handler for internal purposes, which may interfere with other
|
|
|
|
uses of the signal, identified after a colon.
|
|
|
|
|
|
|
|
This safety problem can be worked around by ensuring that no other uses
|
|
|
|
of the signal will take place for the duration of the call. Holding a
|
|
|
|
non-recursive mutex while calling all functions that use the same
|
|
|
|
temporary signal; blocking that signal before the call and resetting its
|
|
|
|
handler afterwards is recommended.
|
|
|
|
|
|
|
|
There is no safe way to guarantee the original signal handler is
|
|
|
|
restored in case of asynchronous cancellation, therefore so-marked
|
|
|
|
functions are also AC-Unsafe.
|
|
|
|
|
|
|
|
@c fixme: at least deferred cancellation should get it right, and would
|
|
|
|
@c obviate the restoring bit below, and the qualifier above.
|
|
|
|
|
|
|
|
Besides the measures recommended to work around the MT- and AS-Safety
|
|
|
|
problem, in order to avert the cancellation problem, disabling
|
|
|
|
asynchronous cancellation @emph{and} installing a cleanup handler to
|
|
|
|
restore the signal to the desired state and to release the mutex are
|
|
|
|
recommended.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{term}
|
|
|
|
@cindex term
|
|
|
|
|
|
|
|
Functions marked with @code{term} as an MT-Safety issue may change the
|
|
|
|
terminal settings in the recommended way, namely: call @code{tcgetattr},
|
|
|
|
modify some flags, and then call @code{tcsetattr}; this creates a window
|
|
|
|
in which changes made by other threads are lost. Thus, functions marked
|
|
|
|
with @code{term} are MT-Unsafe. The same window enables changes made by
|
|
|
|
asynchronous signals to be lost. These functions are also AS-Unsafe,
|
|
|
|
but the corresponding mark is omitted as redundant.
|
|
|
|
|
|
|
|
It is thus advisable for applications using the terminal to avoid
|
|
|
|
concurrent and reentrant interactions with it, by not using it in signal
|
|
|
|
handlers or blocking signals that might use it, and holding a lock while
|
|
|
|
calling these functions and interacting with the terminal. This lock
|
|
|
|
should also be used for mutual exclusion with functions marked with
|
2014-02-01 13:48:32 +08:00
|
|
|
@code{@mtasurace{:tcattr(fd)}}, where @var{fd} is a file descriptor for
|
|
|
|
the controlling terminal. The caller may use a single mutex for
|
|
|
|
simplicity, or use one mutex per terminal, even if referenced by
|
|
|
|
different file descriptors.
|
2014-01-29 15:20:37 +08:00
|
|
|
|
|
|
|
Functions marked with @code{term} as an AC-Safety issue are supposed to
|
|
|
|
restore terminal settings to their original state, after temporarily
|
|
|
|
changing them, but they may fail to do so if cancelled.
|
|
|
|
|
|
|
|
@c fixme: at least deferred cancellation should get it right, and would
|
|
|
|
@c obviate the restoring bit below, and the qualifier above.
|
|
|
|
|
|
|
|
Besides the measures recommended to work around the MT- and AS-Safety
|
|
|
|
problem, in order to avert the cancellation problem, disabling
|
|
|
|
asynchronous cancellation @emph{and} installing a cleanup handler to
|
|
|
|
restore the terminal settings to the original state and to release the
|
|
|
|
mutex are recommended.
|
|
|
|
|
|
|
|
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
|
|
|
|
@node Other Safety Remarks, , Conditionally Safe Features, POSIX
|
|
|
|
@subsubsection Other Safety Remarks
|
|
|
|
@cindex Other Safety Remarks
|
|
|
|
|
|
|
|
Additional keywords may be attached to functions, indicating features
|
|
|
|
that do not make a function unsafe to call, but that may need to be
|
|
|
|
taken into account in certain classes of programs:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
|
|
|
|
@item @code{locale}
|
|
|
|
@cindex locale
|
|
|
|
|
|
|
|
Functions annotated with @code{locale} as an MT-Safety issue read from
|
|
|
|
the locale object without any form of synchronization. Functions
|
|
|
|
annotated with @code{locale} called concurrently with locale changes may
|
|
|
|
behave in ways that do not correspond to any of the locales active
|
|
|
|
during their execution, but an unpredictable mix thereof.
|
|
|
|
|
|
|
|
We do not mark these functions as MT- or AS-Unsafe, however, because
|
|
|
|
functions that modify the locale object are marked with
|
|
|
|
@code{const:locale} and regarded as unsafe. Being unsafe, the latter
|
|
|
|
are not to be called when multiple threads are running or asynchronous
|
|
|
|
signals are enabled, and so the locale can be considered effectively
|
|
|
|
constant in these contexts, which makes the former safe.
|
|
|
|
|
|
|
|
@c Should the locking strategy suggested under @code{const} be used,
|
|
|
|
@c failure to guard locale uses is not as fatal as data races in
|
|
|
|
@c general: unguarded uses will @emph{not} follow dangling pointers or
|
|
|
|
@c access uninitialized, unmapped or recycled memory. Each access will
|
|
|
|
@c read from a consistent locale object that is or was active at some
|
|
|
|
@c point during its execution. Without synchronization, however, it
|
|
|
|
@c cannot even be assumed that, after a change in locale, earlier
|
|
|
|
@c locales will no longer be used, even after the newly-chosen one is
|
|
|
|
@c used in the thread. Nevertheless, even though unguarded reads from
|
|
|
|
@c the locale will not violate type safety, functions that access the
|
|
|
|
@c locale multiple times may invoke all sorts of undefined behavior
|
|
|
|
@c because of the unexpected locale changes.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{env}
|
|
|
|
@cindex env
|
|
|
|
|
|
|
|
Functions marked with @code{env} as an MT-Safety issue access the
|
|
|
|
environment with @code{getenv} or similar, without any guards to ensure
|
|
|
|
safety in the presence of concurrent modifications.
|
|
|
|
|
|
|
|
We do not mark these functions as MT- or AS-Unsafe, however, because
|
|
|
|
functions that modify the environment are all marked with
|
|
|
|
@code{const:env} and regarded as unsafe. Being unsafe, the latter are
|
|
|
|
not to be called when multiple threads are running or asynchronous
|
|
|
|
signals are enabled, and so the environment can be considered
|
|
|
|
effectively constant in these contexts, which makes the former safe.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{hostid}
|
|
|
|
@cindex hostid
|
|
|
|
|
|
|
|
The function marked with @code{hostid} as an MT-Safety issue reads from
|
|
|
|
the system-wide data structures that hold the ``host ID'' of the
|
|
|
|
machine. These data structures cannot generally be modified atomically.
|
|
|
|
Since it is expected that the ``host ID'' will not normally change, the
|
|
|
|
function that reads from it (@code{gethostid}) is regarded as safe,
|
|
|
|
whereas the function that modifies it (@code{sethostid}) is marked with
|
|
|
|
@code{@mtasuconst{:@mtshostid{}}}, indicating it may require special
|
|
|
|
care if it is to be called. In this specific case, the special care
|
|
|
|
amounts to system-wide (not merely intra-process) coordination.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{sigintr}
|
|
|
|
@cindex sigintr
|
|
|
|
|
|
|
|
Functions marked with @code{sigintr} as an MT-Safety issue access the
|
|
|
|
@code{_sigintr} internal data structure without any guards to ensure
|
|
|
|
safety in the presence of concurrent modifications.
|
|
|
|
|
|
|
|
We do not mark these functions as MT- or AS-Unsafe, however, because
|
|
|
|
functions that modify the this data structure are all marked with
|
|
|
|
@code{const:sigintr} and regarded as unsafe. Being unsafe, the latter
|
|
|
|
are not to be called when multiple threads are running or asynchronous
|
|
|
|
signals are enabled, and so the data structure can be considered
|
|
|
|
effectively constant in these contexts, which makes the former safe.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{fd}
|
|
|
|
@cindex fd
|
|
|
|
|
|
|
|
Functions annotated with @code{fd} as an AC-Safety issue may leak file
|
|
|
|
descriptors if asynchronous thread cancellation interrupts their
|
|
|
|
execution.
|
|
|
|
|
|
|
|
Functions that allocate or deallocate file descriptors will generally be
|
|
|
|
marked as such. Even if they attempted to protect the file descriptor
|
|
|
|
allocation and deallocation with cleanup regions, allocating a new
|
|
|
|
descriptor and storing its number where the cleanup region could release
|
|
|
|
it cannot be performed as a single atomic operation. Similarly,
|
|
|
|
releasing the descriptor and taking it out of the data structure
|
|
|
|
normally responsible for releasing it cannot be performed atomically.
|
|
|
|
There will always be a window in which the descriptor cannot be released
|
|
|
|
because it was not stored in the cleanup handler argument yet, or it was
|
|
|
|
already taken out before releasing it. It cannot be taken out after
|
|
|
|
release: an open descriptor could mean either that the descriptor still
|
|
|
|
has to be closed, or that it already did so but the descriptor was
|
|
|
|
reallocated by another thread or signal handler.
|
|
|
|
|
|
|
|
Such leaks could be internally avoided, with some performance penalty,
|
|
|
|
by temporarily disabling asynchronous thread cancellation. However,
|
|
|
|
since callers of allocation or deallocation functions would have to do
|
|
|
|
this themselves, to avoid the same sort of leak in their own layer, it
|
|
|
|
makes more sense for the library to assume they are taking care of it
|
|
|
|
than to impose a performance penalty that is redundant when the problem
|
|
|
|
is solved in upper layers, and insufficient when it is not.
|
|
|
|
|
|
|
|
This remark by itself does not cause a function to be regarded as
|
|
|
|
AC-Unsafe. However, cumulative effects of such leaks may pose a
|
|
|
|
problem for some programs. If this is the case, suspending asynchronous
|
|
|
|
cancellation for the duration of calls to such functions is recommended.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{mem}
|
|
|
|
@cindex mem
|
|
|
|
|
|
|
|
Functions annotated with @code{mem} as an AC-Safety issue may leak
|
|
|
|
memory if asynchronous thread cancellation interrupts their execution.
|
|
|
|
|
|
|
|
The problem is similar to that of file descriptors: there is no atomic
|
|
|
|
interface to allocate memory and store its address in the argument to a
|
|
|
|
cleanup handler, or to release it and remove its address from that
|
|
|
|
argument, without at least temporarily disabling asynchronous
|
|
|
|
cancellation, which these functions do not do.
|
|
|
|
|
|
|
|
This remark does not by itself cause a function to be regarded as
|
|
|
|
generally AC-Unsafe. However, cumulative effects of such leaks may be
|
|
|
|
severe enough for some programs that disabling asynchronous cancellation
|
|
|
|
for the duration of calls to such functions may be required.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{cwd}
|
|
|
|
@cindex cwd
|
|
|
|
|
|
|
|
Functions marked with @code{cwd} as an MT-Safety issue may temporarily
|
|
|
|
change the current working directory during their execution, which may
|
|
|
|
cause relative pathnames to be resolved in unexpected ways in other
|
|
|
|
threads or within asynchronous signal or cancellation handlers.
|
|
|
|
|
|
|
|
This is not enough of a reason to mark so-marked functions as MT- or
|
|
|
|
AS-Unsafe, but when this behavior is optional (e.g., @code{nftw} with
|
|
|
|
@code{FTW_CHDIR}), avoiding the option may be a good alternative to
|
|
|
|
using full pathnames or file descriptor-relative (e.g. @code{openat})
|
|
|
|
system calls.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{!posix}
|
|
|
|
@cindex !posix
|
|
|
|
|
|
|
|
This remark, as an MT-, AS- or AC-Safety note to a function, indicates
|
|
|
|
the safety status of the function is known to differ from the specified
|
|
|
|
status in the POSIX standard. For example, POSIX does not require a
|
|
|
|
function to be Safe, but our implementation is, or vice-versa.
|
|
|
|
|
|
|
|
For the time being, the absence of this remark does not imply the safety
|
|
|
|
properties we documented are identical to those mandated by POSIX for
|
|
|
|
the corresponding functions.
|
|
|
|
|
|
|
|
|
2014-02-01 13:48:32 +08:00
|
|
|
@item @code{:identifier}
|
|
|
|
@cindex :identifier
|
|
|
|
|
|
|
|
Annotations may sometimes be followed by identifiers, intended to group
|
|
|
|
several functions that e.g. access the data structures in an unsafe way,
|
|
|
|
as in @code{race} and @code{const}, or to provide more specific
|
|
|
|
information, such as naming a signal in a function marked with
|
|
|
|
@code{sig}. It is envisioned that it may be applied to @code{lock} and
|
|
|
|
@code{corrupt} as well in the future.
|
|
|
|
|
|
|
|
In most cases, the identifier will name a set of functions, but it may
|
|
|
|
name global objects or function arguments, or identifiable properties or
|
|
|
|
logical components associated with them, with a notation such as
|
|
|
|
e.g. @code{:buf(arg)} to denote a buffer associated with the argument
|
|
|
|
@var{arg}, or @code{:tcattr(fd)} to denote the terminal attributes of a
|
|
|
|
file descriptor @var{fd}.
|
|
|
|
|
|
|
|
The most common use for identifiers is to provide logical groups of
|
|
|
|
functions and arguments that need to be protected by the same
|
|
|
|
synchronization primitive in order to ensure safe operation in a given
|
|
|
|
context.
|
|
|
|
|
|
|
|
|
|
|
|
@item @code{/condition}
|
|
|
|
@cindex /condition
|
|
|
|
|
|
|
|
Some safety annotations may be conditional, in that they only apply if a
|
|
|
|
boolean expression involving arguments, global variables or even the
|
2016-05-06 15:54:29 +08:00
|
|
|
underlying kernel evaluates to true. Such conditions as
|
2014-02-01 13:48:32 +08:00
|
|
|
@code{/hurd} or @code{/!linux!bsd} indicate the preceding marker only
|
|
|
|
applies when the underlying kernel is the HURD, or when it is neither
|
|
|
|
Linux nor a BSD kernel, respectively. @code{/!ps} and
|
|
|
|
@code{/one_per_line} indicate the preceding marker only applies when
|
|
|
|
argument @var{ps} is NULL, or global variable @var{one_per_line} is
|
|
|
|
nonzero.
|
|
|
|
|
|
|
|
When all marks that render a function unsafe are adorned with such
|
|
|
|
conditions, and none of the named conditions hold, then the function can
|
|
|
|
be regarded as safe.
|
|
|
|
|
|
|
|
|
2014-01-29 15:20:37 +08:00
|
|
|
@end itemize
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
@node Berkeley Unix, SVID, POSIX, Standards and Portability
|
|
|
|
@subsection Berkeley Unix
|
|
|
|
@cindex BSD Unix
|
|
|
|
@cindex 4.@var{n} BSD Unix
|
|
|
|
@cindex Berkeley Unix
|
|
|
|
@cindex SunOS
|
|
|
|
@cindex Unix, Berkeley
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} defines facilities from some versions of Unix which
|
1995-02-18 09:27:10 +08:00
|
|
|
are not formally standardized, specifically from the 4.2 BSD, 4.3 BSD,
|
|
|
|
and 4.4 BSD Unix systems (also known as @dfn{Berkeley Unix}) and from
|
|
|
|
@dfn{SunOS} (a popular 4.2 BSD derivative that includes some Unix System
|
1996-12-08 16:01:13 +08:00
|
|
|
V functionality). These systems support most of the @w{ISO C} and POSIX
|
1995-02-18 09:27:10 +08:00
|
|
|
facilities, and 4.4 BSD and newer releases of SunOS in fact support them all.
|
|
|
|
|
|
|
|
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}).
|
|
|
|
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
@node SVID, XPG, Berkeley Unix, Standards and Portability
|
1995-02-18 09:27:10 +08:00
|
|
|
@subsection SVID (The System V Interface Description)
|
|
|
|
@cindex SVID
|
|
|
|
@cindex System V Unix
|
|
|
|
@cindex Unix, System V
|
|
|
|
|
|
|
|
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}).
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} defines most of the facilities required by the SVID
|
1996-12-08 16:01:13 +08:00
|
|
|
that are not also required by the @w{ISO C} or POSIX standards, for
|
1995-02-18 09:27:10 +08:00
|
|
|
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.)
|
|
|
|
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
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.
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} complies to the X/Open Portability Guide, Issue 4.2,
|
Update.
<1997-06-12 21:22 Ulrich Drepper <drepper@cygnus.com>
* Makefile (libc-map): Define before including Makerules.
* Makerules (lib%.so): Depend on $(lib%-map).
(build-shlib): Adapt rule for above change.
(libc.so): Depend on $(libc-map).
* db/Makefile (libcdb-map): New definition.
* elf/Makefile (libdl-map): New definition.
* elf/dl-lookup.c: Don't use relative include path.
(undefined_msg): New variable. Use single string in all functions.
(do_lookup): Correctly recognize default version.
Return -2 if no version information is available.
Stop processing hash entries when string was found.
Don't bark about missing versioned symbol in file with original
reference if it is a weak symbol.
(_dl_lookup_symbol): Use undefined_msg.
(_dl_lookup_versioned_symbol): Likewise.
Give extra information if no verdef info is available.
* elf/dl-version.c (file_needed): Remove first argument. We must
seek in the whole search list.
(match_symbol): Correct check for available verdef info.
(_dl_check_map_versions): Correct call of find_needed.
* locale/Makefile (libBrokenLocale-map): New definition.
* login/Makefile (libutil-map): New definition.
* math/Makefile (libm-map): New definition.
* md5-crypt/Makefile (libcrypt-map): New definition.
* nis/Makefile (libnsl-map, libnss_compat-map, libnss_nis-map,
libnss_nisplus-map): New definition.
* nss/Makefile (libnss_files-map, libnss_db-map): New definitions.
* resolv/Makefile (libresolv-map, libnss_dns-map): New definitions.
* libc.map: New file.
* db/libdb.map: New file.
* elf/libdl.map: New file.
* locale/libBrokenLocale.map: New file.
* login/libutil.map: New file.
* math/libm.map: New file.
* md5-crypt/libcrypt.map: New file.
* nis/libnss_compat.map: New file.
* nis/libnsl.map: New file.
* nis/libnss_nis.map: New file.
* nis/libnss_nisplus.map: New file.
* nss/libnss_files.map: New file.
* nss/libnss_db.map: New file.
* resolv/libnss_dns.map: New file.
* resolv/libresolv.map: New file.
* sysdeps/i386/dl-machine.h (elf_machine_rel): Don't do anything
for R_386_NONE entries.
* Makefile (manual/dir-add.info): New rule.
* Makerules: Add vpath definition for .x files.
* Makerules (distinfo): Make sure target directory exists.
* argp/argp-help.c (argp_args_usage): Don't modify `fdoc' value
since it is used to distinguish filtered strings from unmodifed
strings.
* elf/dl-lookup.c (do_lookup): Optimize STT_* recognition.
* elf/dl-reloc.c: Fix typo.
* inet/arpa/tftp.h (struct tftphdr): Change type of tu_block to
`unsigned short'.
* manual/Makefile (dir-add.texi): Also emit wrapper text for
info/install-info.
(distribute): Add dir-add.texi and dir-add.info.
(mostlyclean): Add dir-add.info.
(realclean): Add dir-add.texi.
(install): Add entries in `dir' file using install-info.
* manual/libc.texinfo: Add @dircategory and @direntry text.
Reported by Miles Bader <miles@gnu.ai.mit.edu>.
* manual/pattern.texi: Correct description of GLOB_MAGCHAR and
GLOB_NOMAGIC. Changes by Roland McGrath <roland@gnu.ai.mit.edu>.
* nis/nis_addmember.c: Little optimizations.
* nis/nis_call.c: Likewise.
* nis/nis_creategroup.c: Likewise.
* nis/nis_defaults.c: Likewise.
* nis/nis_destroygroup.c: Likewise.
* nis/nis_ismember.c: Likewise.
* nis/nis_local_names.c: Likewise.
* nis/nis_print_group_entry.c: Likewise.
* nis/nis_verifygroup.c: Likewise.
* posix/unistd.h: Fix comment for getcwd.
* stdlib/Makefile (headers): Remove inttypes.h. It's a system
dependent header.
* sysdeps/wordsize-32/Dist: New file.
* sysdeps/wordsize-32/Makefile: New file.
* sysdeps/wordsize-64/Dist: New file.
* sysdeps/wordsize-64/Makefile: New file.
* sunrpc/Makefile: Adopt comment for real situation.
* sysdeps/i386/add_n.S: Add ASM_TYPE_DIRECTIVE and AS_SIZE_DIRECTIVE.
* sysdeps/i386/addmul_1.s: Likewise.
* sysdeps/i386/lshist.s: Likewise.
* sysdeps/i386/rshift.s: Likewise.
* sysdeps/i386/sub_n.s: Likewise.
* sysdeps/i386/submul_1.s: Likewise.
* sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER):
Add .type and .size.
1997-06-12 13:32 Philip Blundell <Philip.Blundell@pobox.com>
* libc/sysdeps/unix/arm/brk.S: New file.
* libc/sysdeps/unix/arm/sysdep.S: Likewise.
* libc/sysdeps/unix/sysv/linux/arm/sysdep.S: Likewise.
1997-06-11 11:51 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_parse_spent):
Check if we have shadow information.
1997-06-08 19:33 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_getservlist.c (nis_getservlist): Use calloc instead of
malloc, alloc memory for nis_server struct.
* nis/nis_getservlist.c (nis_freeservlist): Give the memory for
the nis_server struct free, too.
* nis/nis_removemember (nis_removemember): Fix for loop.
1997-06-12 12:45 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/i386/fpu/__math.h (__M_SQRT2): Define here since we
cannot rely on M_SQRT2 being defined. (log1p): Use __M_SQRT2 not
M_SQRT2.
* math/math.h (_Mldbl): Define even if M_* constants are not
defined.
Reported by corsepiu@faw.uni-ulm.de.
1997-06-12 03:08 Philip Blundell <Philip.Blundell@pobox.com>
* nss/getXXbyYY_r.c (do_weak_alias): Remove extra parentheses.
1997-06-11 13:22 Ulrich Drepper <drepper@cygnus.com>
* misc/regexp.h (compile): Allow use of macro INIT for variable
declaration. Add documentation for INIT.
Reported by Robert Bihlmeyer <robbe@orcus.priv.at>.
1997-06-11 10:47 Philip Blundell <Philip.Blundell@pobox.com>
* sysdeps/unix/sysv/linux/net/if_arp.h: Add two new hardware types.
1997-06-10 11:31 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/powerpc/strlen.s: Use -0x101 instead of 0xfffffeff
for a signed 16-bit value.
1997-06-07 07:54 H.J. Lu <hjl@gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c
(_dl_sysdep_read_whole_file): Deleted.
* sysdeps/powerpc/fenvbits.h (__FE_ALL_INVALID): Changed
to FE_ALL_INVALID.
* sysdeps/powerpc/fraiseexcpt.c (__FE_INVALID_SOFTWARE):
Changed to FE_INVALID_SOFTWARE.
(__FPSCR_STICKY_BITS): Changed to FPSCR_STICKY_BITS.
* sysdeps/libm-ieee754/s_fmin.c: Fix a typo.
1997-06-07 18:48 H.J. Lu <hjl@gnu.ai.mit.edu>
* shlib-versions (.*-.*-linux.*): Set libc to 6.
1997-06-08 15:35 Thorsten Kukuk <kukuk@vt.uni-paderborn.de>
* nis/nis_add.c (nis_add): Use nis_leaf_of_r instead of nis_name_of_r.
* nis/nis_addmember.c (nis_addmember): Fix a lot of pointer errors.
* nis/nis_clone.c: Likewise.
* nis/nis_removemember.c (nis_removemember): Likewise.
* nis/nis_table.c: Likewise.
* nis/nss_nis/nis-hosts.c: Use addr, not p for inet_pton call.
* nis/nss_nisplus/nisplus-hosts.c: Likewise.
* nis/nss_nis/nis-netgrp.c (_nss_nis_setnetgrent): Check for
group == NULL.
1997-06-08 21:21 Mark Kettenis <kettenis@phys.uva.nl>
* login/login.c, login/utmp_daemon.c, login/utmp_file.c,
login/getutent_r.c, login/utmpname.c: Cleanup `#if _LIBC' and
`#ifndef _LIBC' fragments.
* login/programs/utmpd.c: Define DEFAULT_USER.
(drop_priviliges): Use it.
(main): Set locale and text domain.
* login/programs/utmpd-private.h: Declare proc_utmp_eq.
* login/programs/database.c (proc_utmp_eq): Removed.
* login/programs/request.c (proc_utmp_eq): Made global. Only use
ut_id field if valid.
* login/utmp_file.c (proc_utmp_eq): Restore patch made by Miles
Bader that was lost when adding the daemon backend; Only use ut_id
field if valid.
1997-06-05 23:10 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Dist: Remove netatalk/atalk.h and
netinet/icmp.h, add netatalk/at.h.
* sysdeps/unix/sysv/linux/powerpc/Dist: Remove termios.h.
* sysdeps/unix/sysv/linux/sparc/Dist: Remove start.c.
1997-06-04 19:22 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* stdlib/testsort.c (compare): Fix parameter types.
1997-06-04 19:05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* md5-crypt/Makefile (distribute): Fix name of file.
1997-06-04 19:02 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Remove utmpd again, which is
already added implicitly through $(others).
1997-06-05 13:43 Fila Kolodny <fila@filapc.ibi.com>
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add netipx/ipx.h.
1997-06-05 13:25 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* md5-crypt/md5-crypt.c: Add prototype for __md5_crypt.
1997-06-05 17:08 Ulrich Drepper <drepper@cygnus.com>
* string/argz-addsep.c: Correct weak alias.
Reported by Ben Pfaff <pfaffben@pilot.msu.edu>.
* locale/setlocale.c (setlocale): Free variable with locale path
before returning.
(setname): Don't test for _nl_current[category] being NULL before
freeing.
Reported by Ben Pfaff <pfaffben@pilot.msu.edu>.
1997-06-04 12:41 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/intro.texi (XPG): Correct some typos.
* manual/libc.texinfo (Program Arguments): Menu updated.
* nis/nis_local_names.c (nis_local_host): Fix pointer errors.
1997-06-13 05:38:55 +08:00
|
|
|
with all extensions common to XSI (X/Open System Interface)
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
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.
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
|
|
|
|
@node Using the Library, Roadmap to the Manual, Standards and Portability, Introduction
|
|
|
|
@section Using the Library
|
|
|
|
|
|
|
|
This section describes some of the practical issues involved in using
|
2012-02-28 22:44:20 +08:00
|
|
|
@theglibc{}.
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
@menu
|
|
|
|
* Header Files:: How to include the header files in your
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
programs.
|
1995-02-18 09:27:10 +08:00
|
|
|
* Macro Definitions:: Some functions in the library may really
|
|
|
|
be implemented as macros.
|
|
|
|
* Reserved Names:: The C standard reserves some names for
|
|
|
|
the library, and some for users.
|
|
|
|
* Feature Test Macros:: How to control what names are defined.
|
|
|
|
@end menu
|
|
|
|
|
|
|
|
@node Header Files, Macro Definitions, , Using the Library
|
|
|
|
@subsection Header Files
|
|
|
|
@cindex header files
|
|
|
|
|
|
|
|
Libraries for use by C programs really consist of two parts: @dfn{header
|
|
|
|
files} that define types and macros and declare variables and
|
|
|
|
functions; and the actual library or @dfn{archive} that contains the
|
|
|
|
definitions of the variables and functions.
|
|
|
|
|
|
|
|
(Recall that in C, a @dfn{declaration} merely provides information that
|
|
|
|
a function or variable exists and gives its type. For a function
|
|
|
|
declaration, information about the types of its arguments might be
|
|
|
|
provided as well. The purpose of declarations is to allow the compiler
|
|
|
|
to correctly process references to the declared variables and functions.
|
|
|
|
A @dfn{definition}, on the other hand, actually allocates storage for a
|
|
|
|
variable or says what a function does.)
|
|
|
|
@cindex definition (compared to declaration)
|
|
|
|
@cindex declaration (compared to definition)
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
In order to use the facilities in @theglibc{}, you should be sure
|
1995-02-18 09:27:10 +08:00
|
|
|
that your program source files include the appropriate header files.
|
|
|
|
This is so that the compiler has declarations of these facilities
|
|
|
|
available and can correctly process references to them. Once your
|
|
|
|
program has been compiled, the linker resolves these references to
|
|
|
|
the actual definitions provided in the archive file.
|
|
|
|
|
|
|
|
Header files are included into a program source file by the
|
|
|
|
@samp{#include} preprocessor directive. The C language supports two
|
|
|
|
forms of this directive; the first,
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
#include "@var{header}"
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
is typically used to include a header file @var{header} that you write
|
|
|
|
yourself; this would contain definitions and declarations describing the
|
|
|
|
interfaces between the different parts of your particular application.
|
|
|
|
By contrast,
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
#include <file.h>
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
is typically used to include a header file @file{file.h} that contains
|
|
|
|
definitions and declarations for a standard library. This file would
|
|
|
|
normally be installed in a standard place by your system administrator.
|
|
|
|
You should use this second form for the C library header files.
|
|
|
|
|
|
|
|
Typically, @samp{#include} directives are placed at the top of the C
|
|
|
|
source file, before any other code. If you begin your source files with
|
|
|
|
some comments explaining what the code in the file does (a good idea),
|
|
|
|
put the @samp{#include} directives immediately afterwards, following the
|
|
|
|
feature test macro definition (@pxref{Feature Test Macros}).
|
|
|
|
|
|
|
|
For more information about the use of header files and @samp{#include}
|
|
|
|
directives, @pxref{Header Files,,, cpp.info, The GNU C Preprocessor
|
|
|
|
Manual}.@refill
|
|
|
|
|
2012-02-28 22:44:20 +08:00
|
|
|
@Theglibc{} provides several header files, each of which contains
|
1995-02-18 09:27:10 +08:00
|
|
|
the type and macro definitions and variable and function declarations
|
|
|
|
for a group of related facilities. This means that your programs may
|
|
|
|
need to include several header files, depending on exactly which
|
|
|
|
facilities you are using.
|
|
|
|
|
|
|
|
Some library header files include other library header files
|
|
|
|
automatically. However, as a matter of programming style, you should
|
|
|
|
not rely on this; it is better to explicitly include all the header
|
2012-02-28 22:44:20 +08:00
|
|
|
files required for the library facilities you are using. The @glibcadj{}
|
|
|
|
header files have been written in such a way that it doesn't
|
1995-02-18 09:27:10 +08:00
|
|
|
matter if a header file is accidentally included more than once;
|
|
|
|
including a header file a second time has no effect. Likewise, if your
|
|
|
|
program needs to include multiple header files, the order in which they
|
|
|
|
are included doesn't matter.
|
|
|
|
|
|
|
|
@strong{Compatibility Note:} Inclusion of standard header files in any
|
1996-12-08 16:01:13 +08:00
|
|
|
order and any number of times works in any @w{ISO C} implementation.
|
1995-02-18 09:27:10 +08:00
|
|
|
However, this has traditionally not been the case in many older C
|
|
|
|
implementations.
|
|
|
|
|
|
|
|
Strictly speaking, you don't @emph{have to} include a header file to use
|
|
|
|
a function it declares; you could declare the function explicitly
|
|
|
|
yourself, according to the specifications in this manual. But it is
|
|
|
|
usually better to include the header file because it may define types
|
|
|
|
and macros that are not otherwise available and because it may define
|
|
|
|
more efficient macro replacements for some functions. It is also a sure
|
|
|
|
way to have the correct declaration.
|
|
|
|
|
|
|
|
@node Macro Definitions, Reserved Names, Header Files, Using the Library
|
|
|
|
@subsection Macro Definitions of Functions
|
|
|
|
@cindex shadowing functions with macros
|
|
|
|
@cindex removing macros that shadow functions
|
|
|
|
@cindex undefining macros that shadow functions
|
|
|
|
|
|
|
|
If we describe something as a function in this manual, it may have a
|
|
|
|
macro definition as well. This normally has no effect on how your
|
|
|
|
program runs---the macro definition does the same thing as the function
|
|
|
|
would. In particular, macro equivalents for library functions evaluate
|
|
|
|
arguments exactly once, in the same way that a function call would. The
|
|
|
|
main reason for these macro definitions is that sometimes they can
|
|
|
|
produce an inline expansion that is considerably faster than an actual
|
|
|
|
function call.
|
|
|
|
|
|
|
|
Taking the address of a library function works even if it is also
|
|
|
|
defined as a macro. This is because, in this context, the name of the
|
|
|
|
function isn't followed by the left parenthesis that is syntactically
|
|
|
|
necessary to recognize a macro call.
|
|
|
|
|
|
|
|
You might occasionally want to avoid using the macro definition of a
|
|
|
|
function---perhaps to make your program easier to debug. There are
|
|
|
|
two ways you can do this:
|
|
|
|
|
|
|
|
@itemize @bullet
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
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
|
|
|
|
as a macro call.
|
|
|
|
|
|
|
|
@item
|
|
|
|
You can suppress any macro definition for a whole source file by using
|
|
|
|
the @samp{#undef} preprocessor directive, unless otherwise stated
|
|
|
|
explicitly in the description of that facility.
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
For example, suppose the header file @file{stdlib.h} declares a function
|
|
|
|
named @code{abs} with
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
extern int abs (int);
|
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
and also provides a macro definition for @code{abs}. Then, in:
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
#include <stdlib.h>
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
int f (int *i) @{ return abs (++*i); @}
|
1995-02-18 09:27:10 +08:00
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
@noindent
|
|
|
|
the reference to @code{abs} might refer to either a macro or a function.
|
|
|
|
On the other hand, in each of the following examples the reference is
|
|
|
|
to a function and not a macro.
|
|
|
|
|
|
|
|
@smallexample
|
|
|
|
#include <stdlib.h>
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
int g (int *i) @{ return (abs) (++*i); @}
|
1995-02-18 09:27:10 +08:00
|
|
|
|
|
|
|
#undef abs
|
Update.
1997-06-03 23:42 Ulrich Drepper <drepper@cygnus.com>
* elf/dl-support.c: Define and initialize _dl_verbose used in
dl-machine.h.
* io/ftw.c: Expand stat/lstat calls.
* manual/intro.texi: Also refer to ISO 9945.
Update info about SVID.
Add description for XPG.
* md5-crypt/md5-crypt.c: Namespace cleanups.
* md5-crypt/md5.c: Likewise.
* md5-crypt/md5.h: Likewise.
* sysdeps/generic/crypt-entry.c: Likewise.
* posix/unistd.h (_POSIX2_C_VERSION): Set to 199209L.
* stdlib/fmtmsg.h: Declare addseverity only if __USE_SVID is
defined.
* sunrpc/rpc_scan.c (findkind): Declare `token' as const.
* sunrpc/rpc_util.c (toktostr): Declare `token' as const.
* time/Makefile: Make tzselect dependen of config.make.
1997-06-01 15:01 Miles Bader <miles@gnu.ai.mit.edu>
* manual/string.texi (String and Array Utilities): Add `Argz and
Envz Vectors' to the menu.
(Argz and Envz Vectors, Argz Functions, Envz Functions): New nodes.
1997-05-31 20:59 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* login/Makefile (utmpd-routines): Add utmpd.
(extra-objs): Add utmpd objects to get dependencies.
(distribute): Add sources for utmpd.
(subdir-dirs): Define.
1997-06-02 16:28 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/wordsize-32/inttypes.h: Include features.h and use
__CONCAT instead of defined __CONCAT__ ourself.
* sysdeps/wordsize-64/inttypes.h: Likewise.
1997-06-01 19:11 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/wordsize-64/inttypes.h (INTMAX_C): Use `l' suffix, not
`ll'.
(PRIdFAST, PRIoFAST, PRIxFAST, PRIuFAST, SCNdFAST, SCNiFAST,
SCNoFAST, SCNxFAST): Correct format specifiers.
1997-06-02 04:23 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/syscalls.list: Make fchdir weak alias for __fchdir.
1997-06-01 19:17 Ulrich Drepper <drepper@cygnus.com>
* md5-crypt/Makefile: Correct libmd5crypt file to really generate
DES free libcrypt.
* md5-crypt/onlymd5-entry.c: New file. Wrapper around
sysdeps/generic/crypt-entry.c.
1997-06-01 12:48 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/alpha/gnu/types.h (__fd_mask): Change
type to `unsigned long int'.
Patch by Richard Henderson <richard@twiddle.rth.home>.
1997-05-30 17:34 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/generic/bb_init_func.c (__bb_init_func): Use ISO C
declaration style.
* nss/nss_files/files-hosts.c: Delete inclusion of
"../resolv/mapv4v6hostent.h".
1997-06-04 05:53:09 +08:00
|
|
|
int h (int *i) @{ return abs (++*i); @}
|
1995-02-18 09:27:10 +08:00
|
|
|
@end smallexample
|
|
|
|
|
|
|
|
Since macro definitions that double for a function behave in
|
|
|
|
exactly the same way as the actual function version, there is usually no
|
|
|
|
need for any of these methods. In fact, removing macro definitions usually
|
|
|
|
just makes your program slower.
|
|
|
|
|
|
|
|
|
|
|
|
@node Reserved Names, Feature Test Macros, Macro Definitions, Using the Library
|
|
|
|
@subsection Reserved Names
|
|
|
|
@cindex reserved names
|
|
|
|
@cindex name space
|
|
|
|
|
|
|
|
The names of all library types, macros, variables and functions that
|
1996-12-08 16:01:13 +08:00
|
|
|
come from the @w{ISO C} standard are reserved unconditionally; your program
|
1995-02-18 09:27:10 +08:00
|
|
|
@strong{may not} redefine these names. All other library names are
|
|
|
|
reserved if your program explicitly includes the header file that
|
|
|
|
defines or declares them. There are several reasons for these
|
|
|
|
restrictions:
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
Other people reading your code could get very confused if you were using
|
|
|
|
a function named @code{exit} to do something completely different from
|
|
|
|
what the standard @code{exit} function does, for example. Preventing
|
|
|
|
this situation helps to make your programs easier to understand and
|
|
|
|
contributes to modularity and maintainability.
|
|
|
|
|
|
|
|
@item
|
|
|
|
It avoids the possibility of a user accidentally redefining a library
|
|
|
|
function that is called by other library functions. If redefinition
|
|
|
|
were allowed, those other functions would not work properly.
|
|
|
|
|
|
|
|
@item
|
|
|
|
It allows the compiler to do whatever special optimizations it pleases
|
|
|
|
on calls to these functions, without the possibility that they may have
|
|
|
|
been redefined by the user. Some library facilities, such as those for
|
|
|
|
dealing with variadic arguments (@pxref{Variadic Functions})
|
|
|
|
and non-local exits (@pxref{Non-Local Exits}), actually require a
|
|
|
|
considerable amount of cooperation on the part of the C compiler, and
|
2001-05-22 01:38:30 +08:00
|
|
|
with respect to the implementation, it might be easier for the compiler
|
|
|
|
to treat these as built-in parts of the language.
|
1995-02-18 09:27:10 +08:00
|
|
|
@end itemize
|
|
|
|
|
|
|
|
In addition to the names documented in this manual, reserved names
|
|
|
|
include all external identifiers (global functions and variables) that
|
|
|
|
begin with an underscore (@samp{_}) and all identifiers regardless of
|
|
|
|
use that begin with either two underscores or an underscore followed by
|
|
|
|
a capital letter are reserved names. This is so that the library and
|
|
|
|
header files can define functions, variables, and macros for internal
|
|
|
|
purposes without risk of conflict with names in user programs.
|
|
|
|
|
|
|
|
Some additional classes of identifier names are reserved for future
|
|
|
|
extensions to the C language or the POSIX.1 environment. While using these
|
|
|
|
names for your own purposes right now might not cause a problem, they do
|
|
|
|
raise the possibility of conflict with future versions of the C
|
|
|
|
or POSIX standards, so you should avoid these names.
|
|
|
|
|
|
|
|
@itemize @bullet
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
Names beginning with a capital @samp{E} followed a digit or uppercase
|
|
|
|
letter may be used for additional error code names. @xref{Error
|
|
|
|
Reporting}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Names that begin with either @samp{is} or @samp{to} followed by a
|
|
|
|
lowercase letter may be used for additional character testing and
|
|
|
|
conversion functions. @xref{Character Handling}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Names that begin with @samp{LC_} followed by an uppercase letter may be
|
|
|
|
used for additional macros specifying locale attributes.
|
|
|
|
@xref{Locales}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Names of all existing mathematics functions (@pxref{Mathematics})
|
|
|
|
suffixed with @samp{f} or @samp{l} are reserved for corresponding
|
|
|
|
functions that operate on @code{float} and @code{long double} arguments,
|
|
|
|
respectively.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Names that begin with @samp{SIG} followed by an uppercase letter are
|
|
|
|
reserved for additional signal names. @xref{Standard Signals}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Names that begin with @samp{SIG_} followed by an uppercase letter are
|
|
|
|
reserved for additional signal actions. @xref{Basic Signal Handling}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Names beginning with @samp{str}, @samp{mem}, or @samp{wcs} followed by a
|
|
|
|
lowercase letter are reserved for additional string and array functions.
|
|
|
|
@xref{String and Array Utilities}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
Names that end with @samp{_t} are reserved for additional type names.
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
In addition, some individual header files reserve names beyond
|
|
|
|
those that they actually define. You only need to worry about these
|
|
|
|
restrictions if your program includes that particular header file.
|
|
|
|
|
|
|
|
@itemize @bullet
|
|
|
|
@item
|
|
|
|
The header file @file{dirent.h} reserves names prefixed with
|
|
|
|
@samp{d_}.
|
|
|
|
@pindex dirent.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{fcntl.h} reserves names prefixed with
|
|
|
|
@samp{l_}, @samp{F_}, @samp{O_}, and @samp{S_}.
|
|
|
|
@pindex fcntl.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{grp.h} reserves names prefixed with @samp{gr_}.
|
|
|
|
@pindex grp.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{limits.h} reserves names suffixed with @samp{_MAX}.
|
|
|
|
@pindex limits.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{pwd.h} reserves names prefixed with @samp{pw_}.
|
|
|
|
@pindex pwd.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{signal.h} reserves names prefixed with @samp{sa_}
|
|
|
|
and @samp{SA_}.
|
|
|
|
@pindex signal.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{sys/stat.h} reserves names prefixed with @samp{st_}
|
|
|
|
and @samp{S_}.
|
|
|
|
@pindex sys/stat.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{sys/times.h} reserves names prefixed with @samp{tms_}.
|
|
|
|
@pindex sys/times.h
|
|
|
|
|
|
|
|
@item
|
|
|
|
The header file @file{termios.h} reserves names prefixed with @samp{c_},
|
|
|
|
@samp{V}, @samp{I}, @samp{O}, and @samp{TC}; and names prefixed with
|
|
|
|
@samp{B} followed by a digit.
|
|
|
|
@pindex termios.h
|
|
|
|
@end itemize
|
|
|
|
|
|
|
|
@comment Include the section on Creature Nest Macros.
|
|
|
|
@include creature.texi
|
|
|
|
|
|
|
|
@node Roadmap to the Manual, , Using the Library, Introduction
|
|
|
|
@section Roadmap to the Manual
|
|
|
|
|
|
|
|
Here is an overview of the contents of the remaining chapters of
|
|
|
|
this manual.
|
|
|
|
|
2014-04-18 07:41:09 +08:00
|
|
|
@c The chapter overview ordering is:
|
|
|
|
@c Error Reporting (2)
|
|
|
|
@c Virtual Memory Allocation and Paging (3)
|
|
|
|
@c Character Handling (4)
|
|
|
|
@c Strings and Array Utilities (5)
|
|
|
|
@c Character Set Handling (6)
|
|
|
|
@c Locales and Internationalization (7)
|
|
|
|
@c Searching and Sorting (9)
|
|
|
|
@c Pattern Matching (10)
|
|
|
|
@c Input/Output Overview (11)
|
|
|
|
@c Input/Output on Streams (12)
|
|
|
|
@c Low-level Input/Ooutput (13)
|
|
|
|
@c File System Interface (14)
|
|
|
|
@c Pipes and FIFOs (15)
|
|
|
|
@c Sockets (16)
|
|
|
|
@c Low-Level Terminal Interface (17)
|
|
|
|
@c Syslog (18)
|
|
|
|
@c Mathematics (19)
|
|
|
|
@c Aritmetic Functions (20)
|
|
|
|
@c Date and Time (21)
|
|
|
|
@c Non-Local Exist (23)
|
|
|
|
@c Signal Handling (24)
|
|
|
|
@c The Basic Program/System Interface (25)
|
|
|
|
@c Processes (26)
|
|
|
|
@c Job Control (28)
|
|
|
|
@c System Databases and Name Service Switch (29)
|
|
|
|
@c Users and Groups (30) -- References `User Database' and `Group Database'
|
|
|
|
@c System Management (31)
|
|
|
|
@c System Configuration Parameters (32)
|
|
|
|
@c C Language Facilities in the Library (AA)
|
|
|
|
@c Summary of Library Facilities (AB)
|
|
|
|
@c Installing (AC)
|
|
|
|
@c Library Maintenance (AD)
|
|
|
|
|
|
|
|
@c The following chapters need overview text to be added:
|
|
|
|
@c Message Translation (8)
|
|
|
|
@c Resource Usage And Limitations (22)
|
|
|
|
@c Inter-Process Communication (27)
|
|
|
|
@c Debugging support (34)
|
|
|
|
@c POSIX Threads (35)
|
|
|
|
@c Internal Probes (36)
|
|
|
|
@c Platform-specific facilities (AE)
|
|
|
|
@c Contributors to (AF)
|
|
|
|
@c Free Software Needs Free Documentation (AG)
|
|
|
|
@c GNU Lesser General Public License (AH)
|
|
|
|
@c GNU Free Documentation License (AI)
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
@itemize @bullet
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
@ref{Error Reporting}, describes how errors detected by the library
|
|
|
|
are reported.
|
|
|
|
|
|
|
|
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
2012-02-28 22:44:20 +08:00
|
|
|
@ref{Memory}, describes @theglibc{}'s facilities for managing and
|
2000-05-22 05:22:28 +08:00
|
|
|
using virtual and real memory, including dynamic allocation of virtual
|
|
|
|
memory. If you do not know in advance how much memory your program
|
|
|
|
needs, you can allocate it dynamically instead, and manipulate it via
|
|
|
|
pointers.
|
1995-02-18 09:27:10 +08:00
|
|
|
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
@ref{Character Handling}, contains information about character
|
|
|
|
classification functions (such as @code{isspace}) and functions for
|
|
|
|
performing case conversion.
|
|
|
|
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
@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.
|
|
|
|
|
2014-04-18 07:41:09 +08:00
|
|
|
@item
|
|
|
|
@ref{Character Set Handling}, contains information about manipulating
|
|
|
|
characters and strings using character sets larger than will fit in
|
|
|
|
the usual @code{char} data type.
|
|
|
|
|
|
|
|
@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.
|
|
|
|
|
|
|
|
@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.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Pattern Matching}, presents functions for matching regular expressions
|
|
|
|
and shell file name patterns, and for expanding words as the shell does.
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
@item
|
|
|
|
@ref{I/O Overview}, gives an overall look at the input and output
|
|
|
|
facilities in the library, and contains information about basic concepts
|
|
|
|
such as file names.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{I/O on Streams}, describes I/O operations involving streams (or
|
|
|
|
@w{@code{FILE *}} objects). These are the normal C library functions
|
|
|
|
from @file{stdio.h}.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Low-Level I/O}, contains information about I/O operations
|
|
|
|
on file descriptors. File descriptors are a lower-level mechanism
|
|
|
|
specific to the Unix family of operating systems.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{File System Interface}, has descriptions of operations on entire
|
|
|
|
files, such as functions for deleting and renaming them and for creating
|
|
|
|
new directories. This chapter also contains information about how you
|
|
|
|
can access the attributes of a file, such as its owner and file protection
|
|
|
|
modes.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Pipes and FIFOs}, contains information about simple interprocess
|
|
|
|
communication mechanisms. Pipes allow communication between two related
|
|
|
|
processes (such as between a parent and child), while FIFOs allow
|
|
|
|
communication between processes sharing a common file system on the same
|
|
|
|
machine.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Sockets}, describes a more complicated interprocess communication
|
|
|
|
mechanism that allows processes running on different machines to
|
|
|
|
communicate over a network. This chapter also contains information about
|
|
|
|
Internet host addressing and how to use the system network databases.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Low-Level Terminal Interface}, describes how you can change the
|
|
|
|
attributes of a terminal device. If you want to disable echo of
|
|
|
|
characters typed by the user, for example, read this chapter.
|
|
|
|
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
@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
|
|
|
|
exponential functions on floating-point numbers.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Arithmetic,, Low-Level Arithmetic Functions}, describes functions
|
|
|
|
for simple arithmetic, analysis of floating-point values, and reading
|
|
|
|
numbers from strings.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Date and Time}, describes functions for measuring both calendar time
|
|
|
|
and CPU time, as well as functions for setting alarms and timers.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Non-Local Exits}, contains descriptions of the @code{setjmp} and
|
|
|
|
@code{longjmp} functions. These functions provide a facility for
|
|
|
|
@code{goto}-like jumps which can jump from one function to another.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Signal Handling}, tells you all about signals---what they are,
|
|
|
|
how to establish a handler that is called when a particular kind of
|
|
|
|
signal is delivered, and how to prevent signals from arriving during
|
|
|
|
critical sections of your program.
|
|
|
|
|
|
|
|
@item
|
2000-05-04 10:46:54 +08:00
|
|
|
@ref{Program Basics}, tells how your programs can access their
|
1995-02-18 09:27:10 +08:00
|
|
|
command-line arguments and environment variables.
|
|
|
|
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
@ref{Processes}, contains information about how to start new processes
|
|
|
|
and run programs.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Job Control}, describes functions for manipulating process groups
|
|
|
|
and the controlling terminal. This material is probably only of
|
|
|
|
interest if you are writing a shell or other program which handles job
|
|
|
|
control specially.
|
|
|
|
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@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.
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
@item
|
|
|
|
@ref{User Database}, and @ref{Group Database}, tell you how to access
|
|
|
|
the system user and group databases.
|
|
|
|
|
|
|
|
@item
|
2000-04-18 14:24:03 +08:00
|
|
|
@ref{System Management}, describes functions for controlling and getting
|
|
|
|
information about the hardware and software configuration your program
|
|
|
|
is executing under.
|
1995-02-18 09:27:10 +08:00
|
|
|
|
update from main archive 961105
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.
1996-11-06 12:24:40 +08:00
|
|
|
@item
|
1995-02-18 09:27:10 +08:00
|
|
|
@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.
|
|
|
|
|
2014-04-18 07:41:09 +08:00
|
|
|
@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
|
|
|
|
accepting variable numbers of arguments, and constants describing the
|
|
|
|
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.
|
|
|
|
|
1995-02-18 09:27:10 +08:00
|
|
|
@item
|
|
|
|
@ref{Library Summary}, gives a summary of all the functions, variables, and
|
|
|
|
macros in the library, with complete data types and function prototypes,
|
|
|
|
and says what standard or system each is derived from.
|
|
|
|
|
|
|
|
@item
|
2012-02-28 22:44:20 +08:00
|
|
|
@ref{Installation}, explains how to build and install @theglibc{} on
|
2011-07-20 08:41:44 +08:00
|
|
|
your system, and how to report any bugs you might find.
|
|
|
|
|
|
|
|
@item
|
|
|
|
@ref{Maintenance}, explains how to add new functions or port the
|
|
|
|
library to a new system.
|
1995-02-18 09:27:10 +08:00
|
|
|
@end itemize
|
|
|
|
|
|
|
|
If you already know the name of the facility you are interested in, you
|
|
|
|
can look it up in @ref{Library Summary}. This gives you a summary of
|
|
|
|
its syntax and a pointer to where you can find a more detailed
|
|
|
|
description. This appendix is particularly useful if you just want to
|
|
|
|
verify the order and type of arguments to a function, for example. It
|
|
|
|
also tells you what standard or system each function, variable, or macro
|
|
|
|
is derived from.
|