+2001-05-21 Andreas Jaeger <aj@suse.de>
+
+ * locale/programs/ld-collate.c (handle_ellipsis): Fix message.
+ Patch by Philipp Thomas <pthomas@suse.de>.
+
2001-05-17 Bruce Mitchener <bruce@cubik.org>
* manual/arpg.texi: Spelling, misc fixes.
"LC_COLLATE");
else if (endp == NULL)
lr_error (ldfile, _("\
-%s: symbolic range ellipsis must not be direct followed by `order_end'"),
+%s: symbolic range ellipsis must not be directly followed by `order_end'"),
"LC_COLLATE");
else
{
this flag is set, @code{ARGP_PARSE_ARGV0} is ignored, as @code{argv[0]}
is used as the program name in the error messages. This flag implies
@code{ARGP_NO_EXIT} (on the assumption that silent exiting upon errors
-is bad behaviour).
+is bad behavior).
@comment argp.h
@comment GNU
@code{INTMAX_MAX}, @code{INTMAX_MIN}. Note that there are no macros for
unsigned integer minima. These are always zero.
@cindex maximum possible integer
-@cindex mininum possible integer
+@cindex minimum possible integer
There are similar macros for use with C's built in integer types which
should come with your C compiler. These are described in @ref{Data Type
network probably does not need any user authentication, because to use
the machine an intruder must have physical access.
-Sometimes, however, it is necessary to be sure that a user is authorised
+Sometimes, however, it is necessary to be sure that a user is authorized
to use some service a machine provides---for instance, to log in as a
particular user id (@pxref{Users and Groups}). One traditional way of
doing this is for each user to choose a secret @dfn{password}; then, the
Instead, this section warns you of some of the known trouble spots; this
may help you when you try to find out what the laws of your country are.
-Some countries require that you have a licence to use, posess, or import
+Some countries require that you have a licence to use, possess, or import
cryptography. These countries are believed to include Byelorussia,
Burma, India, Indonesia, Israel, Kazakhstan, Pakistan, Russia, and Saudi
Arabia.
The Data Encryption Standard is described in the US Government Federal
Information Processing Standards (FIPS) 46-3 published by the National
Institute of Standards and Technology. The DES has been very thoroughly
-analysed since it was developed in the late 1970s, and no new
+analyzed since it was developed in the late 1970s, and no new
significant flaws have been found.
However, the DES uses only a 56-bit key (plus 8 parity bits), and a
machine has been built in 1998 which can search through all possible
keys in about 6 days, which cost about US$200000; faster searches would
-be possible with more money. This makes simple DES unsecure for most
+be possible with more money. This makes simple DES insecure for most
purposes, and NIST no longer permits new US government systems
to use simple DES.
These are reentrant versions of @code{setkey} and @code{encrypt}. The
only difference is the extra parameter, which stores the expanded
version of @var{key}. Before calling @code{setkey_r} the first time,
-@code{data->initialised} must be cleared to zero.
+@code{data->initialized} must be cleared to zero.
@end deftypefun
The @code{setkey_r} and @code{encrypt_r} functions are GNU extensions.
The pointers placed in @var{buffer} are actually return addresses
obtained by inspecting the stack, one return address per stack frame.
-Note that certain compiler optimisations may interfere with obtaining a
+Note that certain compiler optimizations may interfere with obtaining a
valid backtrace. Function inlining causes the inlined function to not
-have a stack frame; tail call optimisation replaces one stack frame with
+have a stack frame; tail call optimization replaces one stack frame with
another; frame pointer elimination will stop @code{backtrace} from
interpreting the stack contents correctly.
@end deftypefun
returned as if they were associated with option character @samp{\1}.
@item
-POSIX demands the following behaviour: The first non-option stops option
+POSIX demands the following behavior: The first non-option stops option
processing. This mode is selected by either setting the environment
variable @code{POSIXLY_CORRECT} or beginning the @var{options} argument
string with a plus sign (@samp{+}).
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
-implementationally it might be easier for the compiler to treat these as
-built-in parts of the language.
+with respect to the implementation, it might be easier for the compiler
+to treat these as built-in parts of the language.
@end itemize
In addition to the names documented in this manual, reserved names
have a fallback method to use should it fail. @xref{Mmap,,,standards,GNU
Coding Standards}.
-@c XXX madvise documentation missing
+@comment sys/mman.h
+@comment POSIX
+@deftypefun int madvise (void *@var{addr}, size_t @var{length}, int @var{advice})
+
+This function can be used to provide the system with @var{advice} about
+the intended usage patterns of the memory region starting at @var{addr}
+and extending @var{length} bytes.
+
+The valid BSD values for @var{advice} are:
+
+@table @code
+
+@item MADV_NORMAL
+The region should receive no further special treatment.
+
+@item MADV_RANDOM
+The region will be accessed via random page references. The kernel
+should page-in the minimal number of pages for each page fault.
+
+@item MADV_SEQUENTIAL
+The region will be accessed via sequential page references. This
+may cause the kernel to aggressively read-ahead, expecting further
+sequential references after any page fault within this region.
+
+@item MADV_WILLNEED
+The region will be needed. The pages within this region may
+be pre-faulted in by the kernel.
+
+@item MADV_DONTNEED
+The region is no longer needed. The kernel may free these pages,
+causing any changes to the pages to be lost, as well as swapped
+out pages to be discarded.
+
+@end table
+
+The POSIX names are slightly different, but with the same meanings:
+
+@table @code
+
+@item POSIX_MADV_NORMAL
+This corresponds with BSD's @code{MADV_NORMAL}.
+
+@item POSIX_MADV_RANDOM
+This corresponds with BSD's @code{MADV_RANDOM}.
+
+@item POSIX_MADV_SEQUENTIAL
+This corresponds with BSD's @code{MADV_SEQUENTIAL}.
+
+@item POSIX_MADV_WILLNEED
+This corresponds with BSD's @code{MADV_WILLNEED}.
+
+@item POSIX_MADV_DONTNEED
+This corresponds with BSD's @code{MADV_DONTNEED}.
+
+@end table
+
+@code{msync} returns @math{0} for success and @math{-1} for
+error. Errors include:
+@table @code
+
+@item EINVAL
+An invalid region was given, or the @var{advice} was invalid.
+
+@item EFAULT
+There is no existing mapping in at least part of the given region.
+
+@end table
+@end deftypefun
@node Waiting for I/O
@section Waiting for Input or Output
There is one problem with @code{MALLOC_CHECK_}: in SUID or SGID binaries
it could possibly be exploited since diverging from the normal programs
-behaviour it now writes something to the standard error desriptor.
+behavior it now writes something to the standard error descriptor.
Therefore the use of @code{MALLOC_CHECK_} is disabled by default for
SUID and SGID binaries. It can be enabled again by the system
administrator by adding a file @file{/etc/suid-debug} (the content is
__free_hook = old_free_hook;
/* Call recursively */
result = malloc (size);
- /* Save underlaying hooks */
+ /* Save underlying hooks */
old_malloc_hook = __malloc_hook;
old_free_hook = __free_hook;
/* @r{@code{printf} might call @code{malloc}, so protect it too.} */
__free_hook = old_free_hook;
/* Call recursively */
free (ptr);
- /* Save underlaying hooks */
+ /* Save underlying hooks */
old_malloc_hook = __malloc_hook;
old_free_hook = __free_hook;
/* @r{@code{printf} might call @code{free}, so protect it too.} */
contain a valid file name. The user must have write access. If the
file already exists it is truncated. If the environment variable is not
set or it does not name a valid file which can be opened for writing
-nothing is done. The behaviour of @code{malloc} etc. is not changed.
+nothing is done. The behavior of @code{malloc} etc. is not changed.
For obvious reasons this also happens if the application is installed
with the SUID or SGID bit set.
@comment GNU
@deftypefun void muntrace (void)
The @code{muntrace} function can be called after @code{mtrace} was used
-to enable tracing the @code{malloc} calls. If no (succesful) call of
+to enable tracing the @code{malloc} calls. If no (successful) call of
@code{mtrace} was made @code{muntrace} does nothing.
Otherwise it deinstalls the handlers for @code{malloc}, @code{realloc},
@subsubsection Example program excerpts
Even though the tracing functionality does not influence the runtime
-behaviour of the program it is not a good idea to call @code{mtrace} in
+behavior of the program it is not a good idea to call @code{mtrace} in
all programs. Just imagine that you debug a program using @code{mtrace}
and all other programs used in the debugging session also trace their
@code{malloc} calls. The output file would be the same for all programs
by the process that requires space be added to its virtual address space
fails with @code{errno} = @code{ENOMEM} if locking the additional space
would cause the process to exceed its locked page limit. In the case
-that the address space addition that can't be accomodated is stack
+that the address space addition that can't be accommodated is stack
expansion, the stack expansion fails and the kernel sends a
@code{SIGSEGV} signal to the process.
pointer to buffer where the result is stored. @code{STRUCT_TYPE} is
normally a struct which corresponds to the database.
@item char *buffer
-pointer to a buffer where the function can store additional adata for
+pointer to a buffer where the function can store additional data for
the result etc.
@item size_t buflen
length of the buffer pointed to by @var{buffer}.
Developers of a new service will have to make sure that their module is
created using the correct interface number. This means the file itself
-must have the correct name and on ElF systems the @dfn{soname} (Shared
+must have the correct name and on ELF systems the @dfn{soname} (Shared
Object Name) must also have this number. Building a module from a bunch
of object files on an ELF system using GNU CC could be done like this:
@var{buffer} or length @var{buflen}. There must not be any references
to non-constant global data.
-The implementation of this function should honour the @var{stayopen}
+The implementation of this function should honor the @var{stayopen}
flag set by the @code{set@var{DB}ent} function whenever this makes sense.
Before the function returns the implementation should store the value of
@table @code
@item ?(@var{pattern-list})
-The pattern matches if zero or one occurences of any of the patterns
+The pattern matches if zero or one occurrences of any of the patterns
in the @var{pattern-list} allow matching the input string.
@item *(@var{pattern-list})
-The pattern matches if zero or more occurences of any of the patterns
+The pattern matches if zero or more occurrences of any of the patterns
in the @var{pattern-list} allow matching the input string.
@item +(@var{pattern-list})
-The pattern matches if one or more occurences of any of the patterns
+The pattern matches if one or more occurrences of any of the patterns
in the @var{pattern-list} allow matching the input string.
@item @@(@var{pattern-list})
-The pattern matches if exactly one occurence of any of the patterns in
+The pattern matches if exactly one occurrence of any of the patterns in
the @var{pattern-list} allows matching the input string.
@item !(@var{pattern-list})
In the event of an error, @code{glob} stores information in
@code{*@var{vector-ptr}} about all the matches it has found so far.
-It is important to notive that the @code{glob} function will not fail if
+It is important to notice that the @code{glob} function will not fail if
it encounters directories or files which cannot be handled without the
LFS interfaces. The implementation of @code{glob} is supposed to use
these functions internally. This at least is the assumptions made by
The string between the matching braces is separated into single
expressions by splitting at @code{,} (comma) characters. The commas
-themself are discarded. Please note what we said above about recursive
+themselves are discarded. Please note what we said above about recursive
brace expressions. The commas used to separate the subexpressions must
be at the same level. Commas in brace subexpressions are not matched.
They are used during expansion of the brace expression of the deeper
If the @var{command} argument is a null pointer, a return value of zero
indicates that no command processor is available.
-This function is a cancelation point in multi-threaded programs. This
+This function is a cancellation 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.
+protected using cancellation handlers.
@c ref pthread_cleanup_push / pthread_cleanup_pop
@pindex stdlib.h
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
+This function is a cancellation 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.
+protected using cancellation handlers.
@c ref pthread_cleanup_push / pthread_cleanup_pop
The return value is normally the process ID of the child process whose
waitpid (-1, &status, 0)
@end smallexample
-This function is a cancelation point in multi-threaded programs. This
+This function is a cancellation 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.
+protected using cancellation handlers.
@c ref pthread_cleanup_push / pthread_cleanup_pop
@end deftypefun
@pindex sys/resource.h
The symbols for use with @code{getrlimit}, @code{setrlimit},
-@code{getrlimit64}, and @code{seterlimit64} are defined in
+@code{getrlimit64}, and @code{setrlimit64} are defined in
@file{sys/resource.h}.
@comment sys/resource.h
On systems of the past, and most systems today, all processes have
absolute priority 0 and this section is irrelevant. In that case,
@xref{Traditional Scheduling}. Absolute priorities were invented to
-accomodate realtime systems, in which it is vital that certain processes
+accommodate realtime systems, in which it is vital that certain processes
be able to respond to external events happening in real time, which
means they cannot wait around while some other process that @emph{wants
to}, but doesn't @emph{need to} run occupies the CPU.
When two processes are running or ready to run and both have the same
absolute priority, it's more interesting. In that case, who gets the
-CPU is determined by the scheduling policy. If the processeses have
+CPU is determined by the scheduling policy. If the processes have
absolute priority 0, the traditional scheduling policy described in
@ref{Traditional Scheduling} applies. Otherwise, the policies described
in @ref{Realtime Scheduling} apply.
stop an interrupt handler from running and delivering a signal to the
process if you hit Control-C.
-Some systems use absolute priority as a means of allocating a fixed per
-centage of CPU time to a process. To do this, a super high priority
+Some systems use absolute priority as a means of allocating a fixed
+percentage of CPU time to a process. To do this, a super high priority
privileged process constantly monitors the process' CPU usage and raises
its absolute priority when the process isn't getting its entitled share
and lowers it when the process is exceeding it.
It assigns the absolute priority value given by @var{param} and the
scheduling policy @var{policy} to the process with Process ID @var{pid},
or the calling process if @var{pid} is zero. If @var{policy} is
-negative, @code{sched_setschedule} keeps the existing scheduling policy.
+negative, @code{sched_setscheduler} keeps the existing scheduling policy.
The following macros represent the valid values for @var{policy}:
This section is about the scheduling among processes whose absolute
priority is 0. When the system hands out the scraps of CPU time that
-are left over after the processes with higher absolulte priority have
+are left over after the processes with higher absolute priority have
taken all they want, the scheduling described herein determines who
among the great unwashed processes gets them.
Long before there was absolute priority (See @ref{Absolute Priority}),
Unix systems were scheduling the CPU using this system. When Posix came
-in like the Romans and imposed absolute priorities to accomodate the
+in like the Romans and imposed absolute priorities to accommodate the
needs of realtime processing, it left the indigenous Absolute Priority
Zero processes to govern themselves by their own familiar scheduling
policy.
must not modify the tree data, it is safe to run @code{twalk} in more
than one thread at the same time, working on the same tree. It is also
safe to call @code{tfind} in parallel. Functions which modify the tree
-must not be used, otherwise the behaviour is undefined.
+must not be used, otherwise the behavior is undefined.
@end deftypefun
Executing the contents would start at the point where the
@code{getcontext} call just returned.
-The function returns @code{0} if succesful. Otherwise it returns
+The function returns @code{0} if successful. Otherwise it returns
@code{-1} and sets @var{errno} accordingly.
@end deftypefun
@comment signal.h
@comment GNU
@deftypefun sighandler_t sysv_signal (int @var{signum}, sighandler_t @var{action})
-The @code{sysv_signal} implements the behaviour of the standard
+The @code{sysv_signal} implements the behavior of the standard
@code{signal} function as found on SVID systems. The difference to BSD
systems is that the handler is deinstalled after a delivery of a signal.
Historically these are divided into two parts, a @dfn{network number} and a
@dfn{local network address number} within that network. In the
mid-1990s classless addresses were introduced which changed this
-behaviour. Since some functions implicitly expect the old definitions,
+behavior. Since some functions implicitly expect the old definitions,
we first describe the class-based network and will then describe
classless addresses. IPv6 uses only classless addresses and therefore
the following paragraphs don't apply.
@item ENFILE
The system already has too many file descriptors open.
-@item EACCESS
+@item EACCES
The process does not have the privilege to create a socket of the specified
@var{style} or @var{protocol}.
@cindex closing a stream
When a stream is closed with @code{fclose}, the connection between the
-stream and the file is cancelled. After you have closed a stream, you
+stream and the file is canceled. After you have closed a stream, you
cannot perform any additional operations on it.
@comment stdio.h
requirements added by multi-threaded programming.
The POSIX standard requires that by default the stream operations are
-atomic. I.e., issueing two stream operations for the same stream in two
+atomic. I.e., issuing two stream operations for the same stream in two
threads at the same time will cause the operations to be executed as if
they were issued sequentially. The buffer operations performed while
reading or writing are protected from other uses of the same stream. To
stream. Using these functions is very desirable since they are
potentially much faster. This is not only because the locking
operation itself is avoided. More importantly, functions like
-@code{putc} and @code{getc} are very simple and tradionally (before the
+@code{putc} and @code{getc} are very simple and traditionally (before the
introduction of threads) were implemented as macros which are very fast
if the buffer is not empty. With locking required these functions are
now no macros anymore (the code generated would be too much). But these
@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
+of them in the format string shall have one. Otherwise the behavior is
undefined.
@item
to the newly allocated string at that location.
The return value is the number of characters allocated for the buffer, or
-less than zero if an error occured. Usually this means that the buffer
+less than zero if an error occurred. Usually this means that the buffer
could not be allocated.
Here is how to use @code{asprintf} to get the same result as the
There is another way certain fields can be omitted from the output to
standard error. This is described below in the description of
-environment variables influencing the behaviour.
+environment variables influencing the behavior.
The @var{severity} parameter can have one of the values in the following
table:
is incorrect.
@end deftypefun
-There are two environment variables which influence the behaviour of
+There are two environment variables which influence the behavior of
@code{fmtmsg}. The first is @code{MSGVERB}. It is used to control the
output actually happening on standard error (@emph{not} the console
output). Each of the five fields can explicitly be enabled. To do
or is the empty string, a not supported keyword is given or the value is
somehow else invalid, no part of the message is masked out.
-The second environment variable which influences the behaviour of
+The second environment variable which influences the behavior of
@code{fmtmsg} is @code{SEV_LEVEL}. This variable and the change in the
-behaviour of @code{fmtmsg} is not specified in the X/Open Portability
+behavior of @code{fmtmsg} is not specified in the X/Open Portability
Guide. It is available in System V systems, though. It can be used to
introduce new severity levels. By default, only the five severity levels
described above are available. Any other numeric value would make
it usually occurs on System V systems, which heavily use this function.
It seems worthwhile to give a short explanation here of how this system
works on System V. The value of the
-@var{label} field (@code{UX:cat}) says that the error occured in the
+@var{label} field (@code{UX:cat}) says that the error occurred in the
Unix program @code{cat}. The explanation of the error follows and the
value for the @var{action} parameter is @code{"refer to manual"}. One
could be more specific here, if necessary. The @var{tag} field contains,
If the length of @var{from} is less than @var{size}, then @code{stpncpy}
copies all of @var{from}, followed by enough null characters to add up
-to @var{size} characters in all. This behaviour is rarely useful, but it
-is implemented to be useful in contexts where this behaviour of the
+to @var{size} characters in all. This behavior is rarely useful, but it
+is implemented to be useful in contexts where this behavior of the
@code{strncpy} is used. @code{stpncpy} returns a pointer to the
@emph{first} written null character.
This function is not part of ISO or POSIX but was found useful while
developing the GNU C Library itself.
-Its behaviour is undefined if the strings overlap. The function is
+Its behavior is undefined if the strings overlap. The function is
declared in @file{string.h}.
@end deftypefun
If the length of @var{wfrom} is less than @var{size}, then @code{wcpncpy}
copies all of @var{wfrom}, followed by enough null characters to add up
-to @var{size} characters in all. This behaviour is rarely useful, but it
-is implemented to be useful in contexts where this behaviour of the
+to @var{size} characters in all. This behavior is rarely useful, but it
+is implemented to be useful in contexts where this behavior of the
@code{wcsncpy} is used. @code{wcpncpy} returns a pointer to the
@emph{first} written null character.
This function is not part of ISO or POSIX but was found useful while
developing the GNU C Library itself.
-Its behaviour is undefined if the strings overlap.
+Its behavior is undefined if the strings overlap.
@code{wcpncpy} is a GNU extension and is declared in @file{wchar.h}.
@end deftypefun
@smallexample
strverscmp ("no digit", "no digit")
- @result{} 0 /* @r{same behaviour as strcmp.} */
+ @result{} 0 /* @r{same behavior as strcmp.} */
strverscmp ("item#99", "item#100")
@result{} <0 /* @r{same prefix, but 99 < 100.} */
strverscmp ("alpha1", "alpha001")
@deftypefun {int} mount (const char *@var{special_file}, const char *@var{dir}, const char *@var{fstype}, unsigned long int @var{options}, const void *@var{data})
@code{mount} mounts or remounts a filesystem. The two operations are
-quite different and are merged rather unnnaturally into this one function.
+quite different and are merged rather unnaturally into this one function.
The @code{MS_REMOUNT} option, explained below, determines whether
@code{mount} mounts or remounts.
@end itemize
-@item EACCESS
+@item EACCES
@itemize @bullet
@item
path of the system parameter or is not permitted to access the system parameter
itself in the way (read or write) that it requested.
@c There is some indication in the Linux 2.2 code that the code is trying to
-@c return EACCESS here, but the EACCESS value never actually makes it to the
+@c return EACCES here, but the EACCES value never actually makes it to the
@c user.
@item ENOTDIR
There is no system parameter corresponding to @var{name}.
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
+This function is a cancellation 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.
+protected using cancellation handlers.
@c ref pthread_cleanup_push / pthread_cleanup_pop
The return value is normally zero. In the event of an error, a value
@item EBADF
The @var{filedes} argument is not a valid file descriptor.
-@item ENINVAL
+@item EINVAL
The @var{filedes} argument is not associated with a master pseudo-terminal
device.
-@item EACCESS
+@item EACCES
The slave pseudo-terminal device corresponding to the master associated
with @var{filedes} could not be accessed.
@end table