diff options
author | Ulrich Drepper <drepper@redhat.com> | 1997-10-12 04:05:44 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1997-10-12 04:05:44 +0000 |
commit | dfd2257ad98eb0f6eab167e5fe5ff68ca87172e3 (patch) | |
tree | 598abc70247c1d029e6ac2ddb8cf127b81e442e4 /manual | |
parent | a5a0310d8e9d7176bb17e91c916272006a871016 (diff) | |
download | glibc-dfd2257ad98eb0f6eab167e5fe5ff68ca87172e3.tar.gz glibc-dfd2257ad98eb0f6eab167e5fe5ff68ca87172e3.tar.xz glibc-dfd2257ad98eb0f6eab167e5fe5ff68ca87172e3.zip |
Update. cvs/libc-ud-971011
1997-10-12 05:09 Ulrich Drepper <drepper@cygnus.com> * libio/Makefile (routines): Remove iofprintf. * stdio-common/fprintf.c [USE_IN_LIBIO]: Define _IO_fprintf. * libio/filedoalloc.c: Use _G_stat64 instead of stat. * libio/fileops.c (_IO_file_open): Change to take extra argument indicating whether 32 or 64 bit mode is wanted. * libio/iofopen.c: Call _IO_file_open with extra argument set to 0. * libio/iofopen64.c: Call _IO_file_open with extra argument set to 0. * libio/iolibio.h (_IO_freopen, _IO_freopen64): Likewise. * libio/iofgetpos.c: Pretty print. * libio/iofgetpos64.c: Use _IO_fpos64_t for local variable `pos'. * manual/conf.texi: Document all the _SC_ and _CS_ constants. * manual/creature.texi: Document _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE and _FILE_OFFSET_BITS. * manual/llio.texi: Document truncate and ftruncate. * manual/stdio.texi: Document positional parameters for printf. * math/Makefile (headers): Add tgmath.h. (libm-support): Remove s_lrint, s_llrint, s_lround, and s_llround and move to ... (libm-calls): ... here. Add scalbln, s_nextafterx and s_fma. * math/libm-test.c (lround_test, llround_test): Test for all FP formats by using FUNC(). * math/libm.map: Add fma, fmaf, fmal, nextafterx, nextafterxf, nextafterxl, scalbln, scalblnf, scalblnl, lrintf, lrintl, llrintf, llrintl, lroundf, lroundl, llroundf, and llroundl. * math/math.h: Document new platform specific macros from mathdef.h. Remove declaration of lrint, llrint, lround, and llround. * math/test-double.c: Define TEST_DOUBLE. * math/test-idouble.c: Likewise. * math/test-float.c: Define TEST_FLOAT. * math/test-ifloat.c: Likewise. * math/tgmath.h: New file. * math/bits/mathcalls.h: Add nextafterx, scalbln, fma, lrint, llrint, lround, and llround. Change second argument of scalbn to `int'. * sysdeps/libm-ieee754/s_fma.S: New file. * sysdeps/libm-ieee754/s_fmaf.S: New file. * sysdeps/libm-ieee754/s_fmal.S: New file. * sysdeps/libm-i387/s_fma.S: New file. * sysdeps/libm-i387/s_fmaf.S: New file. * sysdeps/libm-i387/s_fmal.S: New file. * sysdeps/libm-i387/s_llrint.S: Change to take double argument. * sysdeps/libm-i387/s_lrint.S: Likewise. * sysdeps/libm-i387/s_llrintf.S: New file. * sysdeps/libm-i387/s_llrintl.S: New file. * sysdeps/libm-i387/s_lrintf.S: New file. * sysdeps/libm-i387/s_lrintl.S: New file. * sysdeps/libm-ieee754/s_llrint.c: Remove version which works on 80bit double. * sysdeps/libm-ieee754/s_lrint.c: Likewise. * sysdeps/libm-ieee754/s_llrintf.S: New file. * sysdeps/libm-ieee754/s_llrintl.S: New file. * sysdeps/libm-ieee754/s_lrintf.S: New file. * sysdeps/libm-ieee754/s_lrintl.S: New file. * sysdeps/libm-i387/s_scalbln.c: New file. Empty file. * sysdeps/libm-i387/s_scalblnf.c: New file. Empty file. * sysdeps/libm-i387/s_scalblnl.c: New file. Empty file. * sysdeps/libm-i387/s_scalbn.c: Add scalbln as alias. * sysdeps/libm-i387/s_scalbnf.c: Add scalblnf as alias. * sysdeps/libm-i387/s_scalbnl.c: Add scalblnl as alias. * sysdeps/libm-ieee754/s_llround.c: Remove version which works on 80bit double. * sysdeps/libm-ieee754/s_lround.c: Likewise. * sysdeps/libm-ieee754/s_llroundf.c: Likewise. * sysdeps/libm-ieee754/s_llroundl.c: Likewise. * sysdeps/libm-ieee754/s_lroundf.c: Likewise. * sysdeps/libm-ieee754/s_lroundl.c: Likewise. * sysdeps/libm-ieee754/s_nextafterl.c: Add alias fo nextafterxl. * sysdeps/libm-ieee754/s_nextafterx.c: New file. * sysdeps/libm-ieee754/s_nextafterxf.c: New file. * sysdeps/libm-ieee754/s_nextafterxl.c: New file. * sysdeps/libm-ieee754/s_scalbln.c: New file. * sysdeps/libm-ieee754/s_scalblnf.c: New file. * sysdeps/libm-ieee754/s_scalblnl.c: New file. * sysdeps/libm-ieee754/s_scalbn.c: Change to take `int' as second arg. * sysdeps/libm-ieee754/s_scalbnf.c: Likewise. * sysdeps/libm-ieee754/s_scalbnl.c: Likewise. * stdlib/stdlib.h: Protect declarations of __strto*l_internal functions by #ifdefs since they are duplicated in inttypes.h. * sysdeps/wordsize-32/inttypes.h: Add definition of strtoimax and strtoumax plus needed declarations. * sysdeps/generic/confname.h (_SC_AIO_LISTIO_MAX): Fix typo. 1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> * locale/programs/locfile.c (locfile_read): Correct while loop. * db2/makedb.c (main): Add missing parameter for error output. (process_input): Likewise. * resolv/gethnamaddr.c (getanswer): Rewrite a bit to avoid warning. 1997-10-12 05:05 Ulrich Drepper <drepper@cygnus.com> * libc-map: Add __bzero, __mempcpy. 1997-10-10 18:51 David S. Miller <davem@tanya.rutgers.edu> * sysdeps/unix/sysv/linux/sparc/bits/ioctls.h: Remove dependencies on kernel_termios.h 1997-10-09 10:24 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> Add the changes from the Solaris 2.6 header files, use the new public defines/functions. * nis/nis_addmember.c: Updated. * nis/nis_checkpoint.c: Updated. * nis/nis_creategroup.c: updated. * nis/nis_destroygroup.c: Updated. * nis/nis_getservlist.c: Updated. * nis/nis_ismember.c: Updated. * nis/nis_lookup.c: Updated. * nis/nis_modify.c: Updated. * nis/nis_ping.c: Updated. * nis/nis_print.c: Updated. * nis/nis_print_group_entry.c: Updated. * nis/nis_remove.c: Updated. * nis/nis_removemember.c: Updated. * nis/nis_xdr.c: Updated. * nis/nss_nisplus/nisplus-alias.c: Updated. * nis/nss_nisplus/nisplus-ethers.c: Updated. * nis/nss_nisplus/nisplus-hosts.c: Updated. * nis/nss_nisplus/nisplus-network.c: Updated. * nis/nss_nisplus/nisplus-parser.c: Updated. * nis/nss_nisplus/nisplus-proto.c: Updated. * nis/nss_nisplus/nisplus-rpc.c: Updated. * nis/nss_nisplus/nisplus-service.c: Updated. * nis/rpcsvc/nis.h: Updated. * nis/rpcsvc/nis.x: Updated. * nis/rpcsvc/nis_object.x: Updated. * nis/rpcsvc/nis_tags.h: Updated. * nis/rpcsvc/nislib.h: Updated. * nis/lckcache.c: Removed, since Sun has dropped the directory signatures. The old cache version is now a security risk and not longer supported by Sun. * nis/nis_cache.c: Likewise. * nis/rpcsvc/nis_cache.h: Likewise. * nis/rpcsvc/nis_cache.x: Likewise. * nis/nis_call.c: Remove calls to the cache functions. * nis/libnsl.map: Remove cache and depending functions. * nis/nis_intern.h: Likewise. * nis/nis_add.c: Remove #include <rpcsvc/nislib.h>. * nis/nis_domain_of.c: Likewise. * nis/nis_domain_of_r.c: Likewise. * nis/nis_error.c: Likewise. * nis/nis_file.c: Likewise. * nis/nis_local_names.c: Likewise. * nis/nis_mkdir.c: Likewise. * nis/nis_rmdir.c: Likewise. * nis/nis_subr.c: Likewise. * nis/nis_verifygroup.c: Likewise. * nis/nis_clone.c: Removed, replaced by ... * nis/nis_clone_dir.c: New. * nis/nis_clone_obj.c: New. * nis/nis_clone_res.c: New. * nis/nis_table.c: Fixed bugs shown through the new clone functions. * nis/nis_defaults.c: Fixed a lot of race conditions. * nis/nis_free.c: Rewritten. * sunrpc/auth_des.c: Fix use of free'ed pointer. * nis/Makefile (libnsl-routines): Remove nis_clone, nis_cache and lckcache. Add nis_clone_dir, nis_clone_obj, and nis_clone_res. 1997-10-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> * wctype/test_wctype.c (TEST): Add parens to avoid ambiguity. 1997-10-08 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * include/features.h: Don't crash if _XOPEN_SOURCE is defined to be empty. 1997-10-09 05:54 Ulrich Drepper <drepper@cygnus.com> * nss/digits_dots.c: Place `result' in resbuf and not in `buffer'. * nss/getXXbyYY_r.c: Make sure digits_dots.c sees `resbuf' as struct and not a pointer. Little optimizations. 1997-10-09 05:00 Ulrich Drepper <drepper@cygnus.com> * sysdeps/stub/getenv.c: Remove unused file. * sysdeps/stub/lxstat.c: Likewise. * sysdeps/stub/morecore.c: Likewise. * sysdeps/stub/putenv.c: Likewise. * sysdeps/stub/sbrk.c: Likewise. * sysdeps/stub/setenv.c: Likewise. * sysdeps/stub/sysd-stdio.c: Likewise. * sysdeps/stub/sysdep.h: Likewise. Reported by Zack Weinberg <zack@rabi.phys.columbia.edu>. 1997-10-09 04:58 Ulrich Drepper <drepper@cygnus.com> * configure.in: Add __bzero definition to DWARF2 unwind test. Reported by David S. Miller <davem@caip.rutgers.edu>. 1997-10-07 Paul Eggert <eggert@twinsun.com> * intl/loadmsgcat.c (_nl_load_domain): Fix &&/|| typo when checking file size. Check for overflow when stuffing off_t into size_t. 1997-10-07 18:11 Ulrich Drepper <drepper@cygnus.com> * time/africa: Update from tzdata1997i. 1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de> * posix/globtest.sh: Add arguments for name of dynamic linker and call dynamic linker to execute globtest. * posix/Makefile (tests): Supply arguments to globtest.sh. 1997-10-07 Andreas Jaeger <aj@arthur.rhein-neckar.de> * nis/rpcsvc/ypupd.h: Add missing __END_DECLS. 1997-10-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * libc.map: Add mempcpy, prctl. 1997-09-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/memcmp.c: Avoid warnings. * sysdeps/generic/memset.c: Likewise. * sysdeps/generic/strchr.c: Likewise. * sysdeps/generic/strlen.c: Likewise. 1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * malloc/Makefile ($(objpfx)mtrace): Fix typo. 1997-09-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/dl-machine.h (elf_machine_rela): Fix last change. The R_68K_GLOB_DAT and R_68K_JMP_SLOT relocations really ignore the addend, Richard. (elf_machine_fixup_plt): Don't add the addend. (elf_machine_plt_value): New function. * sysdeps/alpha/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/sparc/sparc64/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/powerpc/dl-machine.h (elf_machine_plt_value): New function. * sysdeps/i386/dl-machine.h (elf_machine_plt_value): New function. * elf/dl-runtime.c (fixup, profile_fixup): Don't add in the addend, instead let the machine dependent setup decide. 1997-09-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/m68k/m68020/bits/string.h: New file. 1997-10-07 04:27 Richard Henderson <rth@cygnus.com> * Makeconfig (+includes): Add -I$(objpfx). * stdlib/longlong.h [__sparc__]: Prototype __udiv_qrnnd. * sysdeps/alpha/setjmp.S: __setjmp is the same as _setjmp. Make the former a strong symbol and the later a weak alias. * sysdeps/sparc/sparc32/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/setjmp.S: Likewise. 1997-10-06 21:01 David S. Miller <davem@tanya.rutgers.edu> * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Make ino_t 64-bits. * sysdeps/unix/sysv/linux/sparc/sparc64/kernel_stat.h: Make st_ino member 64-bits as well, to match the kernel. 1997-10-06 19:35 Ulrich Drepper <drepper@cygnus.com> * sysdeps/sparc/sparc64/sub_n.S: Fix typo. Patch by Jakub Jelinek <jj@sunsite.ms.mff.cuni.cz>. 1997-10-06 01:09 Zack Weinberg <zack@rabi.phys.columbia.edu> * time/README: Correct list of files from tzcode package. Add contact information for tzcode/tzdata maintainers. Correct spelling of author's name. Compact lists. 1997-10-06 01:48 Ulrich Drepper <drepper@cygnus.com> * malloc/malloc.h: Remove hook definition without caller argument. * malloc/malloc.c: Likewise. * string/tester.c: Correct strsep test. * string/bits/string2.h: Define __string2_1bptr_p and use it. Patch by David S. Miller <davem@tanya.rutgers.edu>. * math/Makefile (routines): Add s_clog10. * math/libm-test.c: Add test for clog10. * math/libm.map: Add clog10{,f,l}. * math/bits/cmathcalls.h [__USE_GNU]: Add clog10. * sysdeps/libm-ieee754/s_clog10.c: New file. * sysdeps/libm-ieee754/s_clog10f.c: New file. * sysdeps/libm-ieee754/s_clog10l.c: New file. * manual/math.texi: Describe clog10. * config.h.in: Add USE_REGPARMS and define internal_function based on this. * configure.in: Define USE_REGPARMS for ix86 machines. * gmon/gmon.c: Mark write_hist, write_call_graph and write_bb_counts as internal functions. * inet/getnameinfo.c: Likewise for nrl_domainname. * inet/getnetgrent_r.c: Likewise for __internal_setnetgrent_reuse. * inet/rcmd.c: Likewise for __icheckhost. * intl/dcgettext.c: Likewise for category_to_name and guess_category_value. * intl/localealias.c: Likewise for read_alias_file. * io/fts.c: Likewise for fts_alloc, fts_build, fts_lfree, fts_maxarglen, fts_padjust, fts_palloc, fts_sort, and fts_stat. * libio/genops.c: Likewise for save_for_backup. * malloc/malloc.c (chunk_free, chunk_alloc, chunk_realloc, chunk_align, main_trim, heap_trim): Likewise. * malloc/mtrace.c (tr_where): Likewise. * misc/fstab.c (mnt2fs): Likewise. * misc/getttyent.c (skip, value): Likewise. * misc/syslog.c (openlog_internal): Likewise. * misc/tsearch.c (trecurse, tdestroy_internal): Likewise. * nss/nsswitch.c (nss_lookup_function, nss_parse_file, nss_getline, nss_parse_service_list, nss_new_service): Likewise. * posix/wordexp.c (parse_dollars, parse_backtick, eval_expr): Likewise. * resolv/inet_ntop.c (inet_ntop4, inet_ntop6): Likewise. * resolv/inet_pton.c (inet_pton4, inet_pton6): Likewise. * resolv/res_init.c (res_setoptions): Likewise. * stdio-common/printf_fp.c (group_number): Likewise. * stdio-common/vfprintf.c (buffered_vfprintf, group_number): Likewise. * stdlib/fmtmsg.c (internal_addseverity): Likewise. * sunrpc/auth_des.c (synchronize): Likewise. * sunrpc/auth_unix.c (marshal_new_auth): Likewise. * sunrpc/clnt_perr.c (auth_errmsg): Likewise. * sunrpc/key_call.c (key_call): Likewise. * sunprc/pmap_rmt.c (getbroadcastnets): Likewise. * sunrpc/svc_tcp.c (makefd_xprt): Likewise. * sunrpc/svcauth_des.c (cache_init, cache_spot, cache_ref, invalidate): Likewise. * sunrpc/xdr_rec.c (fix_buf_size, skip_input_bytes, flush_out, set_input_fragment, get_input_bytes): Likewise. * sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path, phys_pages_info): Likewise. * sysdeps/unix/sysv/linux/if_index.c (opensock): Likewise. * sysdeps/unix/sysv/linux/poll.c (__emulate_poll): Likewise. * sysdeps/unix/sysv/linux/readv.c (__atomic_readv_replacement): Likewise. * sysdeps/unix/sysv/linux/readv.c (__atomic_writev_replacement): Likewise. * time/strptime.c (strptime_internal): Likewise. * time/tzfile.c (find_transition, compute_tzname_max): Likewise. * time/tzset.c (compute_change, tz_compute, tzset_internal): Likewise. * libc.map: Remove _libio_using_thunks, add _fp_hw and _dl_addr. * ctype/ctype.h: Pretty print. * grp/grp.h: Likewise. * include/libc-symbols.h: Likewise. * include/limits.h: Likewise. * include/values.h: Likewise. * io/fcntl.h: Likewise. * io/sys/stat.h: Likewise. * libio/stdio.h: Likewise. * malloc/malloc.h: Likewise. * misc/err.h: Likewise. * misc/regexp.h: Likewise. * misc/sys/cdefs.h: Likewise. * misc/sys/file.h: Likewise. * posix/sys/utsname.h: Likewise. * posix/sys/wait.h: Likewise. * pwd/pwd.h: Likewise. * resolv/netdb.h: Likewise. * signal/signal.h: Likewise. * stdlib/stdlib.h: Likewise. * string/endian.h: Likewise. * string/memory.h: Likewise. * sysdeps/mach/hurd/bits/fcntl.h: Likewise. * sysdeps/mach/hurd/sys/param.h: Likewise. * sysdeps/unix/sysv/linux/sys/param.h: Likewise. * termios/termios.h: Likewise. * wcsmbs/wchar.h: Likewise. * wctype/wctype.h: Likewise. * sysdeps/unix/bsd/bsd4.4/wait3.c: Use __WAIT_STATUS in definition. Implement Large File Support API. * include/features.h: Add suuport for _LARGEFILE_SOURCE, _LARGEFILE64_SOURCE, and _FILE_OFFSET_BITS. * libc.map: Add new functions for LFS. * dirent/Makefile (routines): Add readdir64 and readdir64_r. * dirent/dirent.h: Update readdir prototype for LFS and add new prototypes for above functions. * io/Makefile (routines): Add xstat64, fxstat64, lxstat64, statfs64, fstatfs64, lstat64, open64, lseek64, creat64, and ftw64. * io/creat64.c: New file. * io/fstat64.c: New file. * io/lstat64.c: New file. * io/stat64.c: New file. * io/ftw64.c: New file. * io/ftw.c: Rewrite to allow easy definition of ftw64. * io/ftw.h: Add LFS interface. * io/fcntl.h: Likewise. * io/sys/stat.h: Likewise. * io/sys/statfs.h: Likewise. * libio/Makefile (routines): Add iofgetpos64, iofopen64, iofsetpos64, freopen64, fseeko64, and ftello64. * libcio/fseeko64.c: New file. * libio/ftello64.c: New file. * libio/iofgetpos64.c: New file. * libio/iofopen64.c: New file. * libio/iofsetpos64.c: New file. * libio/fileops.c (_IO_file_fopen): Change to use _IO_off64_t. (_IO_file_attach): Likewise. (_IO_do_write): Likewise. (_IO_file_sync): Likewise. (_IO_file_seek): Likewise. (_IO_file_seekoff): Likewise. Use _G_stat64. (_IO_file_fopen64): New function. (_IO_file_jumps): Initialize showmanyc and imbue. * libio/genops.c (_IO_default_seekpos): Change to use _IO_fpos64_t. (_IO_default_seekoff): Likewise. (_IO_default_seek): Likewise. (_IO_default_showmanyc, _IO_default_imbue): New functions. * libio/iofopncook.c (_IO_cookie_seek): Change to use _IO_off64_t. * libio/iolibio.h: Add prototypes for LFS functions. * libio/ioseekoff.c: Change to use _IO_fpos64_t. * libio/ioseekpos.c: Likewise. * libio/libio.h: Define _IO_fpos64_t and _IO_off64_t. (_IO_FILE): Move _offset field to end and change type to _IO_off64_t. (_IO_seekoff, _IO_seekpos): Change prototype. * libio/libioP.h (_IO_seekoff_t, _IO_seekpos_t, _IO_seek_t): Change to use _IO_off64_t. Change prototypes for function from the *ops.c files. * libio/stdio.h: Add LFS interface definition. * libio/strops.c (_IO_str_seekoff): Change to use _IO_fpos64_t. * posix/Makefile (routines): Add pread64 and pwrite64. * posix/confstr.c: Handle _CS_LFS* requests. * posix/getconf.c: Handle LFS* requests. * sysdeps/generic/confname.h: Add _CS_LFS* constants. * posix/unistd.h: Document _LFS64_LARGEFILE and _LFS64_STDIO. Define off_t and off64_t appropriately. Change prototypes of LFS functions. * posix/sys/types.h: Add LFS types. * resources/Makefile (routines): Add getrlimit64 and setlimit64. * resource/sys/resource.h: Change prototypes of LFS functions. * stdio-common/Makefile (routines): Add tmpfile64. * stdio-common/tmpfile64.c: New file. * sysdeps/generic/_G_config.h: Define _G_fpos64_t and _G_off64_t. Define _G_OPEN64, _G_LSEEK64, _G_FSTAT64. * sysdeps/unix/sysv/linux/_G_config.h: Likewise. * sysdeps/generic/bits/resource.h: Add LFS definitions. * sysdeps/unix/bsd/sun/sunos4/bits/resource.h: Likewise. * sysdeps/unix/sysv/linux/bits/resource.h: Likewise. * sysdeps/generic/statfs.h: Use __fsblkcnt_t for some of the fields. * sysdeps/unix/sysv/linux/bits/statfs.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/statfs.h: Likewise. * sysdeps/generic/types.h: Define LFS types. * sysdeps/unix/sysv/linux/alpha/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/bits/types.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Likewise. * sysdeps/generic/sys/mman.h: Add LFS definitions. * sysdeps/unix/sysv/linux/sys/mman.h: Likewise. * sysdeps/generic/mach/hurd/bits/fcntl.h: Add flock LFS extensions. * sysdeps/unix/bsd/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/bits/fcntl.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/fcntl.h: Likewise. * sysdeps/generic/mach/hurd/bits/stat.h: Add stat LFS extensions. * sysdeps/unix/bsd/bits/stat.h: Likewise. * sysdeps/unix/bsd/osf/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/stat.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/i386/bits/stat.h: Likewise. * sysdeps/unix/sysv/sysv4/solaris2/bits/stat.h: Likewise. * sysdeps/posix/open64.c: New file. * sysdeps/stub/fstatfs64.c: New file. * sysdeps/stub/fxstat64.c: New file. * sysdeps/stub/getrlimit64.c: New file. * sysdeps/stub/lseek64.c: New file. * sysdeps/stub/lxstat64.c: New file. * sysdeps/stub/open64.c: New file. * sysdeps/stub/pread64.c: New file. * sysdeps/stub/pwrite64.c: New file. * sysdeps/stub/readdir64.c: New file. * sysdeps/stub/readdir64_r.c: New file. * sysdeps/stub/setrlimit64.c: New file. * sysdeps/stub/statfs64.c: New file. * sysdeps/stub/xstat64.c: New file. * sysdeps/unix/sysv/linux/llseek.c: Define as __llseek and make llseek and lseek64 weak aliases. * sysdeps/unix/sysv/linux/lseek64.c: New file. Empty. * sysdeps/unix/sysv/linux/alpha/bits/dirent.h: New file. * sysdeps/unix/sysv/linux/bits/dirent.h: Add LFS definitions. * sysdeps/posix/tempname.c: Add extra argument to trigger use of open64. * sysdeps/stub/tempname.c: Likewise. * stdio-common/tempnam.c: Call __stdio_gen_tempname with extra argument. * stdio-common/tmpfile.c: Likewise. * stdio-common/tmpnam.c: Likewise. * stdio-common/tmpnam_r.c: Likewise. * libio/libioP.h: Add definition ofr showmanyc and imbue callbacks. * libio/fileops.c (_IO_file_jumps): Initialize showmanyc and imbue. * libio/iofopncook.c (_IO_cookie_jumps): Likewise. * libio/iopopen.c (_IO_proc_jumps): Likewise. * libio/memstream.c (_IO_mem_jumps): Likewise. * libio/obprintf.c (_IO_obstack_jumps): Likewise. * libio/vsnprintf.c (_IO_strn_jumps): Likewise. * libio/strops.c (_IO_str_jumps): Likewise. * manual/arith.texi: Add a few words why cabs should be used. * manual/llio.texi: Describe sync, fsync, fdatasync. Tell about cleanup handlers & fcntl,lseek,write,read,close,open. * manual/process.texi: Tell about cleanup handlers & system,waitpid, wait. * manual/signal.texi: Likewise for pause. * manual/terminal.texi: Likewise for tcdrain. * manual/time.texi: Document nanosleep. * posix/exevp.c: Don't use nested function. * stdlib/ucontext.h: New file. * sysdeps/i386/sys/ucontext.h: New file. SysV/i386 API definitions. * sunrpc/xcrypt.c (hexval): Make a macro for efficiency. * sysdeps/i386/setjmp.h: Make `here` label local. * sysdeps/i386/elf/start.S: Define _fp_hw "variable". * sysdeps/stub/fstatfs.c: Correct warning. * sysdeps/stub/fxstat.c: Likewise. * sysdeps/stub/lxstat.c: Likewise. * sysdeps/unix/sysv/i386/i686/time.S: New file. 1997-10-03 20:56 Jason Merrill <jason@yorick.cygnus.com> * malloc/obstack.h (obstack_empty_p): New macro. 1997-10-04 17:41 Philip Blundell <Philip.Blundell@pobox.com> * inet/getnameinfo.c (getnameinfo): Remove spurious `#if INET6'. 1997-09-30 Zack Weinberg <zack@rabi.phys.columbia.edu> * maint.texi: Add copyright terms for libdb (Sleepycat, Harvard). Document new --with-binutils switch; delete reference to --with-gnu-as, --with-gnu-ld, --with-gnu-binutils. Add to description of --without-fp: a kernel FPU emulator is adequate (from FAQ) * INSTALL: Regenerated. 1997-09-30 17:29 Richard Henderson <rth@cygnus.com> * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_rela): Move _dl_hwcap declaration to ... (elf_machine_fixup_plt): ... here.
Diffstat (limited to 'manual')
-rw-r--r-- | manual/arith.texi | 10 | ||||
-rw-r--r-- | manual/conf.texi | 593 | ||||
-rw-r--r-- | manual/creature.texi | 65 | ||||
-rw-r--r-- | manual/llio.texi | 216 | ||||
-rw-r--r-- | manual/maint.texi | 135 | ||||
-rw-r--r-- | manual/math.texi | 27 | ||||
-rw-r--r-- | manual/process.texi | 24 | ||||
-rw-r--r-- | manual/signal.texi | 8 | ||||
-rw-r--r-- | manual/stdio.texi | 29 | ||||
-rw-r--r-- | manual/terminal.texi | 8 | ||||
-rw-r--r-- | manual/time.texi | 36 |
11 files changed, 1124 insertions, 27 deletions
diff --git a/manual/arith.texi b/manual/arith.texi index 7f8c205ebb..2e418838db 100644 --- a/manual/arith.texi +++ b/manual/arith.texi @@ -414,13 +414,19 @@ This function returns the absolute value of the floating-point number @deftypefunx float cabsf (complex float @var{z}) @deftypefunx {long double} cabsl (complex long double @var{z}) These functions return the absolute value of the complex number @var{z}. -The compiler must support complex numbers to use these functions. (See -also the function @code{hypot} in @ref{Exponents and Logarithms}.) The +The compiler must support complex numbers to use these functions. The value is: @smallexample sqrt (creal (@var{z}) * creal (@var{z}) + cimag (@var{z}) * cimag (@var{z})) @end smallexample + +This function should always be used instead of the direct formula since +using the simple straight-forward method can mean to loose accuracy. If +one of the squared values is neglectable in size compared to the other +value the result should be the same as the larger value. But squaring +the value and afterwards using the square root function leads to +unaccuracy. See @code{hypot} in @xref{Exponents and Logarithms}. @end deftypefun @node Normalization Functions diff --git a/manual/conf.texi b/manual/conf.texi index 4f9326e9d4..64591ee9f2 100644 --- a/manual/conf.texi +++ b/manual/conf.texi @@ -236,7 +236,7 @@ always defines this as @code{1}, on the assumption that you had to have @deftypevr Macro {long int} _POSIX_VERSION This constant represents the version of the POSIX.1 standard to which the implementation conforms. For an implementation conforming to the -1990 POSIX.1 standard, the value is the integer @code{199009L}. +1995 POSIX.1 standard, the value is the integer @code{199506L}. @code{_POSIX_VERSION} is always defined (in @file{unistd.h}) in any POSIX system. @@ -368,6 +368,294 @@ Inquire about the parameter corresponding to @code{CLOCKS_PER_SEC}; @pxref{Basic CPU Time}. @comment unistd.h +@comment GNU +@item _SC_CHARCLASS_NAME_MAX +Inquire about the parameter corresponding to maximal length allowed for +a character class name in an extended locale specification. These +extensions are not yet standardized and so this option is not standardized +as well. + +@comment unistdh.h +@comment POSIX.1 +@item _SC_REALTIME_SIGNALS +Inquire about the parameter corresponding to @code{_POSIX_REALTIME_SIGNALS}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_PRIORITY_SCHEDULING +Inquire about the parameter corresponding to @code{_POSIX_PRIORITY_SCHEDULING}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_TIMERS +Inquire about the parameter corresponding to @code{_POSIX_TIMERS}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_ASYNCHRONOUS_IO +Inquire about the parameter corresponding to @code{_POSIX_ASYNCHRONOUS_IO}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_PRIORITIZED_IO +Inquire about the parameter corresponding to @code{_POSIX_PRIORITIZED_IO}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_SYNCHRONIZED_IO +Inquire about the parameter corresponding to @code{_POSIX_SYNCHRONIZED_IO}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_FSYNC +Inquire about the parameter corresponding to @code{_POSIX_FSYNC}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_MAPPED_FILES +Inquire about the parameter corresponding to @code{_POSIX_MAPPED_FILES}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_MEMLOCK +Inquire about the parameter corresponding to @code{_POSIX_MEMLOCK}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_MEMLOCK_RANGE +Inquire about the parameter corresponding to @code{_POSIX_MEMLOCK_RANGE}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_MEMORY_PROTECTION +Inquire about the parameter corresponding to @code{_POSIX_MEMORY_PROTECTION}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_MESSAGE_PASSING +Inquire about the parameter corresponding to @code{_POSIX_MESSAGE_PASSING}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_SEMAPHORES +Inquire about the parameter corresponding to @code{_POSIX_SEMAPHORES}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_SHARED_MEMORY_OBJECTS +Inquire about the parameter corresponding to +@code{_POSIX_SHARED_MEMORY_OBJECTS}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_AIO_LISTIO_MAX +Inquire about the parameter corresponding to @code{_POSIX_AIO_LISTIO_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_AIO_MAX +Inquire about the parameter corresponding to @code{_POSIX_AIO_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_AIO_PRIO_DELTA_MAX +Inquire the value by which a process can decrease its asynchronous I/O +priority level from its own scheduling priority. This corresponds to the +run-time invariant value @code{AIO_PRIO_DELTA_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_DELAYTIMER_MAX +Inquire about the parameter corresponding to @code{_POSIX_DELAYTIMER_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_MQ_OPEN_MAX +Inquire about the parameter corresponding to @code{_POSIX_MQ_OPEN_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_MQ_PRIO_MAX +Inquire about the parameter corresponding to @code{_POSIX_MQ_PRIO_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_RTSIG_MAX +Inquire about the parameter corresponding to @code{_POSIX_RTSIG_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_SEM_NSEMS_MAX +Inquire about the parameter corresponding to @code{_POSIX_SEM_NSEMS_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_SEM_VALUE_MAX +Inquire about the parameter corresponding to @code{_POSIX_SEM_VALUE_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_SIGQUEUE_MAX +Inquire about the parameter corresponding to @code{_POSIX_SIGQUEUE_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_TIMER_MAX +Inquire about the parameter corresponding to @code{_POSIX_TIMER_MAX}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII +Inquire about the parameter corresponding to @code{_POSIX_PII}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_XTI +Inquire about the parameter corresponding to @code{_POSIX_PII_XTI}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_SOCKET +Inquire about the parameter corresponding to @code{_POSIX_PII_SOCKET}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_INTERNET +Inquire about the parameter corresponding to @code{_POSIX_PII_INTERNET}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_OSI +Inquire about the parameter corresponding to @code{_POSIX_PII_OSI}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_SELECT +Inquire about the parameter corresponding to @code{_POSIX_SELECT}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_UIO_MAXIOV +Inquire about the parameter corresponding to @code{_POSIX_UIO_MAXIOV}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_INTERNET_STREAM +Inquire about the parameter corresponding to @code{_POSIX_PII_INTERNET_STREAM}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_INTERNET_DGRAM +Inquire about the parameter corresponding to @code{_POSIX_PII_INTERNET_DGRAM}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_OSI_COTS +Inquire about the parameter corresponding to @code{_POSIX_PII_OSI_COTS}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_OSI_CLTS +Inquire about the parameter corresponding to @code{_POSIX_PII_OSI_CLTS}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_PII_OSI_M +Inquire about the parameter corresponding to @code{_POSIX_PII_OSI_M}. + +@comment unistd.h +@comment POSIX.1g +@item _SC_T_IOV_MAX +Inquire the value of the value associated with the @code{T_IOV_MAX} +variable. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREADS +Inquire about the parameter corresponding to @code{_POSIX_THREADS}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_SAFE_FUNCTIONS +Inquire about the parameter corresponding to +@code{_POSIX_THREAD_SAFE_FUNCTIONS}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_GETGR_R_SIZE_MAX +Inquire about the parameter corresponding to @code{_POSIX_GETGR_R_SIZE_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_GETPW_R_SIZE_MAX +Inquire about the parameter corresponding to @code{_POSIX_GETPW_R_SIZE_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_LOGIN_NAME_MAX +Inquire about the parameter corresponding to @code{_POSIX_LOGIN_NAME_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_TTY_NAME_MAX +Inquire about the parameter corresponding to @code{_POSIX_TTY_NAME_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_DESTRUCTOR_ITERATIONS +Inquire about the parameter corresponding to +@code{_POSIX_THREAD_DESTRUCTOR_ITERATIONS}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_KEYS_MAX +Inquire about the parameter corresponding to @code{_POSIX_THREAD_KEYS_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_STACK_MIN +Inquire about the parameter corresponding to @code{_POSIX_THREAD_STACK_MIN}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_THREADS_MAX +Inquire about the parameter corresponding to @code{_POSIX_THREAD_THREADS_MAX}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_ATTR_STACKADDR +Inquire about the parameter corresponding to +@code{_POSIX_THREAD_ATTR_STACKADDR}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_ATTR_STACKSIZE +Inquire about the parameter corresponding to +@code{_POSIX_THREAD_ATTR_STACKSIZE}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_PRIORITY_SCHEDULING +Inquire about the parameter corresponding to +@code{_POSIX_THREAD_PRIORITY_SCHEDULING}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_PRIO_INHERIT +Inquire about the parameter corresponding to @code{_POSIX_THREAD_PRIO_INHERIT}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_PRIO_PROTECT +Inquire about the parameter corresponding to @code{_POSIX_THREAD_PRIO_PROTECT}. + +@comment unistd.h +@comment POSIX.1 +@item _SC_THREAD_PROCESS_SHARED +Inquire about the parameter corresponding to +@code{_POSIX_THREAD_PROCESS_SHARED}. + +@comment unistd.h @comment POSIX.2 @item _SC_2_C_DEV Inquire about whether the system has the POSIX.2 C compiler command, @@ -465,6 +753,212 @@ support. Inquire about the virtual memory page size of the machine. @code{getpagesize} returns the same value. @c @xref{XXX getpagesize}. !!! ??? + +@comment unistd.h +@comment GNU +@item _SC_NPROCESSORS_CONF +Inquire about number of configured processors. + +@comment unistd.h +@comment GNU +@item _SC_NPROCESSORS_ONLN +Inquire about number of processors online. + +@comment unistd.h +@comment GNU +@item _SC_PHYS_PAGES +Inquire about number of physical pages in the system. + +@comment unistd.h +@comment GNU +@item _SC_AVPHYS_PAGES +Inquire about number of available physical pages in the system. + +@comment unistd.h +@comment GNU +@item _SC_ATEXIT_MAX +Inquire about number of functions which can be registered as termination +functions for @code{atexit}; @pxref{Cleanups on Exit}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_VERSION +Inquire about the parameter corresponding to @code{_XOPEN_VERSION}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_XCU_VERSION +Inquire about the parameter corresponding to @code{_XOPEN_XCU_VERSION}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_UNIX +Inquire about the parameter corresponding to @code{_XOPEN_UNIX}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_CRYPT +Inquire about the parameter corresponding to @code{_XOPEN_CRYPT}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_ENH_I18N +Inquire about the parameter corresponding to @code{_XOPEN_ENH_I18N}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_SHM +Inquire about the parameter corresponding to @code{_XOPEN_SHM}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_XPG2 +Inquire about the parameter corresponding to @code{_XOPEN_XPG2}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_XPG3 +Inquire about the parameter corresponding to @code{_XOPEN_XPG3}. + +@comment unistd.h +@comment X/Open +@item _SC_XOPEN_XPG4 +Inquire about the parameter corresponding to @code{_XOPEN_XPG4}. + +@comment unistd.h +@comment X/Open +@item _SC_CHAR_BIT +Inquire about number of bits in a variable of type @code{char}. + +@comment unistd.h +@comment X/Open +@item _SC_CHAR_MAX +Inquire about maximum value which can be stored in a variable of type +@code{char}. + +@comment unistd.h +@comment X/Open +@item _SC_CHAR_MIN +Inquire about minimum value which can be stored in a variable of type +@code{char}. + +@comment unistd.h +@comment X/Open +@item _SC_INT_MAX +Inquire about maximum value which can be stored in a variable of type +@code{int}. + +@comment unistd.h +@comment X/Open +@item _SC_INT_MIN +Inquire about minimum value which can be stored in a variable of type +@code{int}. + +@comment unistd.h +@comment X/Open +@item _SC_LONG_BIT +Inquire about number of bits in a variable of type @code{long int}. + +@comment unistd.h +@comment X/Open +@item _SC_WORD_BIT +Inquire about number of bits in a variable of a register word. + +@comment unistd.h +@comment X/Open +@item _SC_MB_LEN_MAX +Inquire the maximum length of a multi-byte representation of a wide +character value. + +@comment unistd.h +@comment X/Open +@item _SC_NZERO +Inquire value used to internally represent the zero priority level for +the process execution. + +@comment unistd.h +@comment X/Open +@item SC_SSIZE_MAX +Inquire about maximum value which can be stored in a variable of type +@code{ssize_t}. + +@comment unistd.h +@comment X/Open +@item _SC_SCHAR_MAX +Inquire about maximum value which can be stored in a variable of type +@code{signed char}. + +@comment unistd.h +@comment X/Open +@item _SC_SCHAR_MIN +Inquire about minimum value which can be stored in a variable of type +@code{signed char}. + +@comment unistd.h +@comment X/Open +@item _SC_SHRT_MAX +Inquire about maximum value which can be stored in a variable of type +@code{short int}. + +@comment unistd.h +@comment X/Open +@item _SC_SHRT_MIN +Inquire about minimum value which can be stored in a variable of type +@code{short int}. + +@comment unistd.h +@comment X/Open +@item _SC_UCHAR_MAX +Inquire about maximum value which can be stored in a variable of type +@code{unsigned char}. + +@comment unistd.h +@comment X/Open +@item _SC_UINT_MAX +Inquire about maximum value which can be stored in a variable of type +@code{unsigned int}. + +@comment unistd.h +@comment X/Open +@item _SC_ULONG_MAX +Inquire about maximum value which can be stored in a variable of type +@code{unsigned long int}. + +@comment unistd.h +@comment X/Open +@item _SC_USHRT_MAX +Inquire about maximum value which can be stored in a variable of type +@code{unsigned short int}. + +@comment unistd.h +@comment X/Open +@item _SC_NL_ARGMAX +Inquire about the parameter corresponding to @code{NL_ARGMAX}. + +@comment unistd.h +@comment X/Open +@item _SC_NL_LANGMAX +Inquire about the parameter corresponding to @code{NL_LANGMAX}. + +@comment unistd.h +@comment X/Open +@item _SC_NL_MSGMAX +Inquire about the parameter corresponding to @code{NL_MSGMAX}. + +@comment unistd.h +@comment X/Open +@item _SC_NL_NMAX +Inquire about the parameter corresponding to @code{NL_NMAX}. + +@comment unistd.h +@comment X/Open +@item _SC_NL_SETMAX +Inquire about the parameter corresponding to @code{NL_SETMAX}. + +@comment unistd.h +@comment X/Open +@item _SC_NL_TEXTMAX +Inquire about the parameter corresponding to @code{NL_TEXTMAX}. @end table @node Examples of Sysconf @@ -522,6 +1016,23 @@ system you are using can go that far. @table @code @comment limits.h @comment POSIX.1 +@item _POSIX_AIO_LISTIO_MAX +The most restrictive limit permitted by POSIX for the maximum number of +I/O operations that can be specified in a list I/O call. The value of +this constant is @code{2}; thus you can add up to two new entries +of the list of outstandard operations. + +@comment limits.h +@comment POSIX.1 +@item _POSIX_AIO_MAX +The most restrictive limit permitted by POSIX for the maximum number of +outstanding asynchronous I/O operations. The value of this constant is +@code{1}. So you cannot expect that you can issue more than one +operation and immediately continue with the normal work, receiving the +notifications asynchronously. + +@comment limits.h +@comment POSIX.1 @item _POSIX_ARG_MAX The value of this macro is the most restrictive limit permitted by POSIX for the maximum combined length of the @var{argv} and @var{environ} @@ -732,7 +1243,9 @@ particular file, call @code{pathconf} or @code{fpathconf}. Here are the names for the POSIX minimum upper bounds for some of the above parameters. The significance of these values is that you can safely push to these limits without checking whether the particular -system you are using can go that far. +system you are using can go that far. In most cases GNU systems do not +have these strict limitations. The actual limit should be requested if +necessary. @table @code @comment limits.h @@ -883,6 +1396,26 @@ Inquire about the value of @code{_POSIX_NO_TRUNC}. @comment POSIX.1 @item _PC_VDISABLE Inquire about the value of @code{_POSIX_VDISABLE}. + +@comment unistd.h +@comment POSIX.1 +@item _PC_SYNC_IO +Inquire about the value of @code{_POSIX_SYNC_IO}. + +@comment unistd.h +@comment POSIX.1 +@item _PC_ASYNC_IO +Inquire about the value of @code{_POSIX_ASYNC_IO}. + +@comment unistd.h +@comment POSIX.1 +@item _PC_PRIO_IO +Inquire about the value of @code{_POSIX_PRIO_IO}. + +@comment unistd.h +@comment POSIX.1g +@item _PC_SOCK_MAXBUF +Inquire about the value of @code{_POSIX_PIPE_BUF}. @end table @node Utility Limits @@ -1064,6 +1597,62 @@ Currently there is just one parameter you can read with @code{confstr}: This parameter's value is the recommended default path for searching for executable files. This is the path that a user has by default just after logging in. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS_CFLAGS +The returned string specifies which additionals flags must be given to +the C compiler if a source is compiled using the +@code{_LARGEFILE_SOURCE} feature select macro; @pxref{Feature Test Macros}. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS_LDFLAGS +The returned string specifies which additionals flags must be given to +the linker if a source is compiled using the +@code{_LARGEFILE_SOURCE} feature select macro; @pxref{Feature Test Macros}. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS_LIBS +The returned string specifies which additionals libraries must be linked +to the application if a source is compiled using the +@code{_LARGEFILE_SOURCE} feature select macro; @pxref{Feature Test Macros}. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS_LINTFLAGS +The returned string specifies which additionals flags must be given to +the the lint tool if a source is compiled using the +@code{_LARGEFILE_SOURCE} feature select macro; @pxref{Feature Test Macros}. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS64_CFLAGS +The returned string specifies which additionals flags must be given to +the C compiler if a source is compiled using the +@code{_LARGEFILE64_SOURCE} feature select macro; @pxref{Feature Test Macros}. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS64_LDFLAGS +The returned string specifies which additionals flags must be given to +the linker if a source is compiled using the +@code{_LARGEFILE64_SOURCE} feature select macro; @pxref{Feature Test Macros}. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS64_LIBS +The returned string specifies which additionals libraries must be linked +to the application if a source is compiled using the +@code{_LARGEFILE64_SOURCE} feature select macro; @pxref{Feature Test Macros}. + +@comment unistd.h +@comment Unix98 +@item _CS_LFS64_LINTFLAGS +The returned string specifies which additionals flags must be given to +the the lint tool if a source is compiled using the +@code{_LARGEFILE64_SOURCE} feature select macro; @pxref{Feature Test Macros}. @end table The way to use @code{confstr} without any arbitrary limit on string size diff --git a/manual/creature.texi b/manual/creature.texi index 9d9b451a94..2e0c62e1f7 100644 --- a/manual/creature.texi +++ b/manual/creature.texi @@ -71,7 +71,7 @@ included as well as the @w{ISO C}, POSIX.1, POSIX.2, and X/Open material. @end defvr @comment (none) -@comment XOPEN +@comment X/Open @defvr Macro _XOPEN_SOURCE @defvrx Macro _XOPEN_SOURCE_EXTENDED If you define this macro, functionality described in the X/Open @@ -91,11 +91,72 @@ all functionality described so far plus some new definitions from the Single Unix specification, @w{version 2}. @end defvr +@comment (NONE) +@comment X/Open +@defvr Macro _LARGEFILE_SOURCE +If this macro is defined some extra functions are available which +rectify a few shortcomings in all previous standards. More concreten +the functions @code{fseeko} and @code{ftello} are available. Without +these functions the difference between the @w{ISO C} interface +(@code{fseek}, @code{ftell}) and the low-level POSIX interface +(@code{lseek}) would lead to problems. + +This macro was introduced as part of the Large File Support extension (LFS). +@end defvr + +@comment (NONE) +@comment X/Open +@defvar Macro _LARGEFILE64_SOURCE +If you define this macro an additional set of function gets available +which enables to use on @w{32 bit} systems to use files of sizes beyond +the usual limit of 2GB. This interface is not available if the system +does not support files that large. On systems where the natural file +size limit is greater than 2GB (i.e., on @w{64 bit} systems) the new +functions are identical to the replaced functions. + +The new functionality is made available by a new set of types and +functions which replace existing. The names of these new objects +contain @code{64} to indicate the intention, e.g., @code{off_t} +vs. @code{off64_t} and @code{fseeko} vs. @code{fseeko64}. + +This macro was introduced as part of the Large File Support extension +(LFS). It is a transition interface for the time @w{64 bit} offsets are +not generally used (see @code{_FILE_OFFSET_BITS}. +@end defvar + +@comment (NONE) +@comment X/Open +@defvar _FILE_OFFSET_BITS +This macro lets decide which file system interface shall be used, one +replacing the other. While @code{_LARGEFILE64_SOURCE} makes the @w{64 +bit} interface available as an additional interface +@code{_FILE_OFFSET_BITS} allows to use the @w{64 bit} interface to +replace the old interface. + +If @code{_FILE_OFFSET_BITS} is undefined or if it is defined to the +value @code{32} nothing changes. The @w{32 bit} interface is used and +types like @code{off_t} have a size of @w{32 bits} on @w{32 bit} +systems. + +If the macro is defined to the value @code{64} the large file interface +replaces the old interface. I.e., the functions are not made available +under different names as @code{_LARGEFILE64_SOURCE} does. Instead the +old function names now reference the new functions, e.g., a call to +@code{fseeko} now indeed calls @code{fseeko64}. + +This macro should only be selected if the system provides mechanisms for +handling large files. On @w{64 bit} systems this macro has no effect +since the @code{*64} functions are identical to the normal functions. + +This macro was introduced as part of the Large File Support extension +(LFS). +@end defvar + @comment (none) @comment GNU @defvr Macro _GNU_SOURCE If you define this macro, everything is included: @w{ISO C}, POSIX.1, -POSIX.2, BSD, SVID, X/Open, and GNU extensions. In the cases where +POSIX.2, BSD, SVID, X/Open, LFS, and GNU extensions. In the cases where POSIX.1 conflicts with BSD, the POSIX definitions take precedence. If you want to get the full effect of @code{_GNU_SOURCE} but make the diff --git a/manual/llio.texi b/manual/llio.texi index 4c10b72578..23c5f767f1 100644 --- a/manual/llio.texi +++ b/manual/llio.texi @@ -32,6 +32,7 @@ directly.) @menu * Opening and Closing Files:: How to open and close file descriptors. +* Truncating Files:: Change the size of a file. * I/O Primitives:: Reading and writing data. * File Position Primitive:: Setting a descriptor's file position. @@ -41,6 +42,7 @@ directly.) descriptors and streams. * Waiting for I/O:: How to check for input or output on multiple file descriptors. +* Synchronizing I/O:: Making sure all I/O actions completed. * Control Operations:: Various other operations on file descriptors. * Duplicating Descriptors:: Fcntl commands for duplicating @@ -136,6 +138,14 @@ or @code{O_CREAT} is set and the file does not already exist. @c !!! umask +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{open} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{open} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The @code{open} function is the underlying primitive for the @code{fopen} and @code{freopen} functions, that create streams. @end deftypefun @@ -175,6 +185,14 @@ When all file descriptors associated with a pipe or FIFO have been closed, any unread data is discarded. @end itemize +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{close} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{close} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The normal return value from @code{close} is @code{0}; a value of @code{-1} is returned in case of failure. The following @code{errno} error conditions are defined for this function: @@ -206,6 +224,73 @@ of trying to close its underlying file descriptor with @code{close}. This flushes any buffered output and updates the stream object to indicate that it is closed. + +@node Truncating Files +@section Change the size of a file + +In some situations it is useful to explicitly determine the size of a +file. Since the 4.2BSD days there is a function to truncate a file to +at most a given number of bytes and POSIX defines one additional +function. The prototypes for these functions are in @file{unistd.h}. + +@comment unistd.h +@comment X/Open +@deftypefun int truncate (const char *@var{name}, size_t @var{length}) +The @code{truncation} function truncates the file named by @var{name} to +at most @var{length} bytes. I.e., if the file was larger before the +extra bytes are stripped of. If the file was small or equal to +@var{length} in size before nothing is done. The file must be writable +by the user to perform this operation. + +The return value is zero is everything wnet ok. Otherwise the return +value is @math{-1} and the global variable @var{errno} is set to: +@table @code +@item EACCES +The file is not accessible to the user. +@item EINVAL +The @var{length} value is illegal. +@item EISDIR +The object named by @var{name} is a directory. +@item ENOENT +The file named by @var{name} does not exist. +@item ENOTDIR +One part of the @var{name} is not a directory. +@end table + +This function was introduced in 4.2BSD but also was available in later +@w{System V} systems. It is not added to POSIX since the authors felt +it is only of marginally additional utility. See below. +@end deftypefun + +@comment unistd.h +@comment POSIX +@deftypefun int ftruncate (int @var{fd}, size_t @var{length}) +The @code{ftruncate} function is similar to the @code{truncate} +function. The main difference is that it takes a descriptor for an +opened file instead of a file name to identify the object. The file +must be opened for writing to successfully carry out the operation. + +The POSIX standard leaves it implementation defined what happens if the +specified new @var{length} of the file is bigger than the original size. +The @code{ftruncate} function might simply leave the file alone and do +nothing or it can increase the size to the desired size. In this later +case the extended area should be zero-filled. So using @code{ftruncate} +is no reliable way to increase the file size but if it is possible it is +probably the fastest way. The function also operates on POSIX shared +memory segments if these are implemented by the system. + +On success the function returns zero. Otherwise it returns @math{-1} +and set @var{errno} to one of these values: +@table @code +@item EBADF +@var{fd} is no valid file descriptor or is not opened for writing. +@item EINVAL +The object referred to by @var{fd} does not permit this operation. +@item EROFS +The file is on a read-only file system. +@end table +@end deftypefun + @node I/O Primitives @section Input and Output Primitives @@ -297,6 +382,14 @@ orphaned. @xref{Job Control}, for more information about job control, and @ref{Signal Handling}, for information about signals. @end table +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{read} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{read} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The @code{read} function is the underlying primitive for all of the functions that read from streams, such as @code{fgetc}. @end deftypefun @@ -419,6 +512,14 @@ macro @code{TEMP_FAILURE_RETRY}, as follows: nbytes = TEMP_FAILURE_RETRY (write (desc, buffer, count)); @end smallexample +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{write} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{write} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The @code{write} function is the underlying primitive for all of the functions that write to streams, such as @code{fputc}. @end deftypefun @@ -537,9 +638,18 @@ only for pipes and FIFOs, but in the GNU system, you always get @code{ESPIPE} if the object is not seekable.) @end table +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{lseek} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{lseek} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The @code{lseek} function is the underlying primitive for the -@code{fseek}, @code{ftell} and @code{rewind} functions, which operate on -streams instead of file descriptors. +@code{fseek}, @code{fseeko}, @code{ftell}, @code{ftello} and +@code{rewind} functions, which operate on streams instead of file +descriptors. @end deftypefun You can have multiple descriptors for the same file if you open the file @@ -1007,6 +1117,100 @@ There is another example showing the use of @code{select} to multiplex input from multiple sockets in @ref{Server Example}. +@node Synchronizing I/O +@section Synchronizing I/O operations + +@cindex synchronizing +In most modern operation systems the normal I/O operations are not +executed synchronously. I.e., even if a @code{write} system call +returns this does not mean the data is actually written to the media, +e.g., the disk. + +In situations where synchronization points are necessary the user can +use special functions which ensure that all operations finished before +they return. + +@comment unistd.h +@comment X/Open +@deftypefun int sync (void) +A call to this function will not return as long as there is data which +that is not written to the device. All dirty buffers in the kernel will +be written and so an overall consistent system can be achieved (if no +other process in parallel writes data). + +A prototype for @code{sync} can be found in @file{unistd.h}. + +The return value is zero to indicate no error. +@end deftypefun + +More often it is wanted that not all data in the system is committed. +Programs want to ensure that data written to a given file are all +committed and in this situation @code{sync} is overkill. + +@comment unistd.h +@comment POSIX +@deftypefun int fsync (int @var{fildes}) +The @code{fsync} can be used to make sure all data associated with the +open file @var{fildes} is written to the device associated with the +descriptor. The function call does not return unless all actions have +finished. + +A prototype for @code{fsync} can be found in @file{unistd.h}. + +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{fsync} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{fsync} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + +The return value of the function is zero if no error occured. Otherwise +it is @math{-1} and the global variable @var{errno} is set to the +following values: +@table @code +@item EBADF +The descriptor @var{fildes} is not valid. + +@item EINVAL +No synchronization is possible since the system does not implement this. +@end table +@end deftypefun + +Sometimes it is not even necessary to write all data associated with a +file descriptor. E.g., in database files which do not change in size it +is enough to write all the file content data to the device. +Metainformation like the modification time etc. are not that important +and leaving such information uncommitted does not prevent a successful +recovering of the file in case of a problem. + +@comment unistd.h +@comment POSIX +@deftypefun int fdatasync (int @var{fildes}) +When a call to the @code{fdatasync} function returns it is maed sure +that all of the file data is written to the device. For all pending I/O +operations the parts guaranteeing data integrety finished. + +Not all systems implement the @code{fdatasync} operation. On systems +missing this functionality @code{fdatasync} is emulated by a call to +@code{fsync} since the performed actions are a superset of those +required by @code{fdatasyn}. + +The prototype for @code{fdatasync} is in @file{unistd.h}. + +The return value of the function is zero if no error occured. Otherwise +it is @math{-1} and the global variable @var{errno} is set to the +following values: +@table @code +@item EBADF +The descriptor @var{fildes} is not valid. + +@item EINVAL +No synchronization is possible since the system does not implement this. +@end table +@end deftypefun + + @node Control Operations @section Control Operations on Files @@ -1069,6 +1273,14 @@ Get process or process group ID to receive @code{SIGIO} signals. Set process or process group ID to receive @code{SIGIO} signals. @xref{Interrupt Input}. @end table + +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{fcntl} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{fcntl} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop @end deftypefun diff --git a/manual/maint.texi b/manual/maint.texi index 2818270103..e6fc47f8e1 100644 --- a/manual/maint.texi +++ b/manual/maint.texi @@ -50,28 +50,21 @@ Here are some options that you should specify (if appropriate) when you run @code{configure}: @table @samp -@item --with-gnu-ld -Use this option if you plan to use GNU @code{ld} to link programs with -the GNU C Library. (We strongly recommend that you do.) This option -enables use of features that exist only in GNU @code{ld}; so if you -configure for GNU @code{ld} you must use GNU @code{ld} @emph{every time} -you link with the GNU C Library, and when building it. - -@item --with-gnu-as -Use this option if you plan to use the GNU assembler, @code{gas}, when -building the GNU C Library. On some systems, the library may not build -properly if you do @emph{not} use @code{gas}. - -@item --with-gnu-binutils -This option implies both @w{@samp{--with-gnu-ld}} and @w{@samp{--with-gnu-as}}. -On systems where GNU tools are the system tools, there is no need to -specify this option. These include GNU, GNU/Linux, and free BSD systems. +@item --with-binutils=@var{directory} +Use the binutils (assembler and linker) in @file{@var{directory}}, not +the ones the C compiler would default to. You could use this option if +the default binutils on your system cannot deal with all the constructs +in the GNU C library. (@code{configure} will detect the problem and +suppress these constructs, so the library will still be usable, but +functionality may be lost---for example, you can not build a shared libc +with old binutils.) @c extra blank line makes it look better @item --without-fp @itemx --nfp -Use this option if your computer lacks hardware floating-point support. +Use this option if your computer lacks hardware floating-point support +and your operating system does not emulate an FPU. @item --prefix=@var{directory} Install machine-independent data files in subdirectories of @@ -1133,6 +1126,114 @@ extensions that they make and grant Carnegie Mellon the rights to redistribute these changes. @end quotation +@item +The code for the database library @file{libdb} comes from the 2.3 +release of Berkeley DB. That code is under the same copyright as 4.4 BSD +and also: + +@quotation +@display +Copyright @copyright{} 1990, 1993, 1994, 1995, 1996, 1997 +Sleepycat Software. All rights reserved. +@end display + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +@enumerate +@item +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +@item +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +@item +Redistributions in any form must be accompanied by information on +how to obtain complete source code for the DB software and any +accompanying software that uses the DB software. The source code +must either be included in the distribution or be available for no +more than the cost of distribution plus a nominal fee, and must be +freely redistributable under reasonable conditions. For an +executable file, complete source code means the source code for all +modules it contains. It does not mean source code for modules or +files that typically accompany the operating system on which the +executable file runs, e.g., standard library modules or system +header files. +@end enumerate + +@sc{this software is provided by sleepycat software ``as is'' and +any express or implied warranties, including, but not limited to, the +implied warranties of merchantability and fitness for a particular purpose +are disclaimed. in no event shall sleepycat software be liable +for any direct, indirect, incidental, special, exemplary, or consequential +damages (including, but not limited to, procurement of substitute goods +or services; loss of use, data, or profits; or business interruption) +however caused and on any theory of liability, whether in contract, strict +liability, or tort (including negligence or otherwise) arising in any way +out of the use of this software, even if advised of the possibility of +such damage.} + +@display +Portions copyright @copyright{} 1995, 1996 +The President and Fellows of Harvard University. +All rights reserved. +@end display + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +@enumerate +@item +Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. +@item +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +@item +All advertising materials mentioning features or use of this software +must display the following acknowledgement: +@quotation + This product includes software developed by Harvard University + and its contributors. +@end quotation +@item +Neither the name of the University nor the names of its contributors +may be used to endorse or promote products derived from this software +without specific prior written permission. +@end enumerate + +@sc{this software is provided by harvard and its contributors ``as is'' and +any express or implied warranties, including, but not limited to, the +implied warranties of merchantability and fitness for a particular purpose +are disclaimed. in no event shall harvard or its contributors be liable +for any direct, indirect, incidental, special, exemplary, or consequential +damages (including, but not limited to, procurement of substitute goods +or services; loss of use, data, or profits; or business interruption) +however caused and on any theory of liability, whether in contract, strict +liability, or tort (including negligence or otherwise) arising in any way +out of the use of this software, even if advised of the possibility of +such damage.} + +@noindent +For a license to use, redistribute or sell DB software under conditions +other than those described above, or to purchase support for this +software, please contact Sleepycat Software at + +@display + Sleepycat Software + 394 E. Riding Dr. + Carlisle, MA 01741 + USA + +1-508-287-4781 +@end display + +or @email{db@@sleepycat.com}. + +@end quotation + @end itemize @c @bye diff --git a/manual/math.texi b/manual/math.texi index 15a2075d33..fe9394b22d 100644 --- a/manual/math.texi +++ b/manual/math.texi @@ -1259,6 +1259,31 @@ $$\log(z) = \log(|z|) + i \arg(z)$$ @end iftex @end deftypefun + +@comment complex.h +@comment GNU +@deftypefun {complex double} clog10 (complex double @var{z}) +@deftypefunx {complex float} clog10f (complex float @var{z}) +@deftypefunx {complex long double} clog10l (complex long double @var{z}) +These functions return the base 10 logarithm of the complex value +@var{z}. Unlike the real value version @code{log} and its variants, +@code{clog} has no limit for the range of its argument @var{z}. + +@noindent +Mathematically this corresponds to the value + +@ifinfo +@math{log (z) = log10 (cabs (z)) + I * carg (z)} +@end ifinfo +@iftex +@tex +$$\log_{10}(z) = \log_{10}(|z|) + i \arg(z)$$ +@end tex +@end iftex + +This function is a GNU extension. +@end deftypefun + @comment complex.h @comment ISO @deftypefun {complex double} csqrt (complex double @var{z}) @@ -1274,7 +1299,7 @@ the value of the argument. @deftypefun {complex double} cpow (complex double @var{base}, complex double @var{power}) @deftypefunx {complex float} cpowf (complex float @var{base}, complex float @var{power}) @deftypefunx {complex long double} cpowl (complex long double @var{base}, complex long double @var{power}) -These functions return the complex value @var{BASE} raised to the power of +These functions return the complex value @var{base} raised to the power of @var{power}. This is computed as @ifinfo diff --git a/manual/process.texi b/manual/process.texi index d382df5df1..43230154f6 100644 --- a/manual/process.texi +++ b/manual/process.texi @@ -62,6 +62,14 @@ possible to create the shell process, and otherwise is the status of the shell process. @xref{Process Completion}, for details on how this status code can be interpreted. +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{system} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{system} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + @pindex stdlib.h The @code{system} function is declared in the header file @file{stdlib.h}. @@ -477,6 +485,14 @@ processes as well as processes that have terminated. The status information from the child process is stored in the object that @var{status-ptr} points to, unless @var{status-ptr} is a null pointer. +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{waitpid} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{waitpid} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The return value is normally the process ID of the child process whose status is reported. If the @code{WNOHANG} option was specified and no child process is waiting to be noticed, the value is zero. A value of @@ -547,6 +563,14 @@ is exactly equivalent to: @smallexample waitpid (-1, &status, 0) @end smallexample + +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{wait} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{wait} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop @end deftypefun @comment sys/wait.h diff --git a/manual/signal.texi b/manual/signal.texi index bc69019e63..7948229871 100644 --- a/manual/signal.texi +++ b/manual/signal.texi @@ -2927,6 +2927,14 @@ The function was interrupted by delivery of a signal. If the signal causes program termination, @code{pause} doesn't return (obviously). +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{pause} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{pause} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The @code{pause} function is declared in @file{unistd.h}. @end deftypefun diff --git a/manual/stdio.texi b/manual/stdio.texi index 4c90b25447..fbf218ebf3 100644 --- a/manual/stdio.texi +++ b/manual/stdio.texi @@ -895,7 +895,7 @@ The conversion specifications in a @code{printf} template string have the general form: @example -% @var{flags} @var{width} @r{[} . @var{precision} @r{]} @var{type} @var{conversion} +% @r{[} @var{param-no} @r{$]} @var{flags} @var{width} @r{[} . @var{precision} @r{]} @var{type} @var{conversion} @end example For example, in the conversion specifier @samp{%-10.8ld}, the @samp{-} @@ -910,6 +910,33 @@ initial @samp{%} character followed in sequence by: @itemize @bullet @item +An optional specification of the parameter used for this format. +Normally the parameters to the @code{printf} function a assigned to the +formats in the order of appearence in the format string. But in some +situations (such as message translation) this is not desirable and this +extension allows to specify and explicit parameter to be used. + +The @var{param-no} part of the format must be an integer in the range of +1 to the maximum number of arguments present to the function call. Some +implementations limit this number to a certainly upper bound. The exact +limit can be retrieved by the following constant. + +@defvr Macro NL_ARGMAX +The value of @code{ARGMAX} is the maximum value allowed for the +specification of an positional parameter in a @code{printf} call. The +actual value in effect at runtime can be retrieved by using +@code{sysconf} using the @code{_SC_NL_ARGMAX} parameter @pxref{Sysconf +Definition}. + +Some system have a quite low limit such as @math{9} for @w{System V} +systems. The GNU C library has no real limit. +@end defvr + +If any of the formats has a specification for the parameter position all +of them in the format string shall have one. Otherwise the behaviour is +undefined. + +@item Zero or more @dfn{flag characters} that modify the normal behavior of the conversion specification. @cindex flag character (@code{printf}) diff --git a/manual/terminal.texi b/manual/terminal.texi index fcd30a11aa..7e0f985220 100644 --- a/manual/terminal.texi +++ b/manual/terminal.texi @@ -1638,6 +1638,14 @@ The @var{filedes} is not associated with a terminal device. The @code{tcdrain} function waits until all queued output to the terminal @var{filedes} has been transmitted. +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{tcdrain} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{tcdrain} should be +protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + The return value is normally zero. In the event of an error, a value of @code{-1} is returned. The following @code{errno} error conditions are defined for this function: diff --git a/manual/time.texi b/manual/time.texi index 7a5cd655c0..c2b2378da8 100644 --- a/manual/time.texi +++ b/manual/time.texi @@ -1455,6 +1455,42 @@ On the GNU system, it is safe to use @code{sleep} and @code{SIGALRM} in the same program, because @code{sleep} does not work by means of @code{SIGALRM}. +@comment time.h +@comment POSIX.1 +@deftypefun int nanosleep (const struct timespec *@var{requested_time}, struct timespec *@var{remaining}) +If the resolution of seconds is not enough the @code{nanosleep} function +can be used. As the name suggests the sleeping period can be specified +in nanoseconds. The actual period of waiting time might be longer since +the requested time in the @var{requested_time} parameter is rounded up +to the next integer multiple of the actual resolution of the system. + +If the function returns because the time has elapsed the return value is +zero. If the function return @math{-1} the global variable @var{errno} +is set to the following values: + +@table @code +@item EINTR +The call was interrupted because a signal was delivered to the thread. +If the @var{remaining} parameter is not the null pointer the structure +pointed to by @var{remaining} is updated to contain the remaining time. + +@item EINVAL +The nanosecond value in the @var{requested_time} parameter contains an +illegal value. Either the value is negative or greater than or equal to +1000 million. +@end table + +This function is a cancelation point in multi-threaded programs. This +is a problem if the thread allocates some resources (like memory, file +descriptors, semaphores or whatever) at the time @code{nanosleep} is +called. If the thread gets canceled these resources stay allocated +until the program ends. To avoid this calls to @code{nanosleep} should +be protected using cancelation handlers. +@c ref pthread_cleanup_push / pthread_cleanup_pop + +The @code{nanosleep} function is declared in @file{time.h}. +@end deftypefun + @node Resource Usage @section Resource Usage |