*.cp *.cps *.fn *.fns *.vr *.vrs *.tp *.tps *.ky *.kys *.pg *.pgs
chapters chapters-incl1 chapters-incl2 summary.texi stamp-*
-distinfo dir-add.texi
+distinfo dir-add.texinfo
/* First argument */
first_arg = @var{arg};
else
- return ARGP_KEY_UNKNOWN; /* Let the next case parse it. */
+ /* Let the next case parse it. */
+ return ARGP_KEY_UNKNOWN;
break;
case ARGP_KEY_ARGS:
remaining_args = @var{state}->argv + @var{state}->next;
@c We need some definitions here.
+@c No we don't, they were done by math.texi. -zw
+@ignore
@ifclear cdot
@ifhtml
@set cdot ·
@end macro
@end ifclear
@end ifclear
+@end ignore
@node Arithmetic, Date and Time, Mathematics, Top
@chapter Low-Level Arithmetic Functions
to @code{sysconf}. The values are all integer constants (more
specifically, enumeration type values).
+@c This table runs a bit wide.
+@iftex
+@indexfonts
+@end iftex
@table @code
@comment unistd.h
@comment POSIX.1
@comment POSIX.1
@item _SC_THREAD_DESTRUCTOR_ITERATIONS
Inquire about the parameter corresponding to
-@code{_POSIX_THREAD_DESTRUCTOR_ITERATIONS}.
+@code{_POSIX_THREAD_DESTRUCTOR_@*ITERATIONS}.
@comment unistd.h
@comment POSIX.1
@item _SC_NL_TEXTMAX
Inquire about the parameter corresponding to @code{NL_TEXTMAX}.
@end table
+@iftex
+@textfonts
+@end iftex
@node Examples of Sysconf
@subsection Examples of @code{sysconf}
@end deftypevr
@comment errno.h
-@comment Linux???: Level 2 not synchronized
+@comment Obsolete: Level 2 not synchronized
@deftypevr Macro int EL2NSYNC
@comment errno ???/45
@end deftypevr
@comment errno.h
-@comment Linux???: Level 3 halted
+@comment Obsolete: Level 3 halted
@deftypevr Macro int EL3HLT
@comment errno ???/46
@end deftypevr
@comment errno.h
-@comment Linux???: Level 3 reset
+@comment Obsolete: Level 3 reset
@deftypevr Macro int EL3RST
@comment errno ???/47
@end deftypevr
@end deftypevr
@comment errno.h
-@comment Linux???: Level 2 halted
+@comment Obsolete: Level 2 halted
@deftypevr Macro int EL2HLT
@comment errno ???/51
@end deftypevr
/*@end group*/
int
-print_widget (FILE *stream, const struct printf_info *info, va_list *app)
+print_widget (FILE *stream,
+ const struct printf_info *info,
+ va_list *app)
{
Widget *w;
char *buffer;
/*@end group*/
/*@group*/
- printf ("aflag = %d, bflag = %d, cvalue = %s\n", aflag, bflag, cvalue);
+ printf ("aflag = %d, bflag = %d, cvalue = %s\n",
+ aflag, bflag, cvalue);
for (index = optind; index < argc; index++)
printf ("Non-option argument %s\n", argv[index]);
@end table
@end deftypefun
-Here is an example showing how you could implement the behavior of GNU's
+Here is an example showing how you could implement the behavior of GNU's@*
@w{@code{getcwd (NULL, 0)}} using only the standard behavior of
@code{getcwd}:
A block device.
@end table
-This member is a BSD extension. Each value except DT_UNKNOWN
+This member is a BSD extension. On systems where it is used, it
corresponds to the file type bits in the @code{st_mode} member of
-@code{struct statbuf}. These two macros convert between @code{d_type}
-values and @code{st_mode} values:
+@code{struct statbuf}. On other systems it will always be DT_UNKNOWN.
+These two macros convert between @code{d_type} values and @code{st_mode}
+values:
@deftypefun int IFTODT (mode_t @var{mode})
This returns the @code{d_type} value corresponding to @var{mode}.
@end deftypefun
-@deftypefun mode_t DTTOIF (int @var{dirtype})
-This returns the @code{st_mode} value corresponding to @var{dirtype}.
+@deftypefun mode_t DTTOIF (int @var{dtype})
+This returns the @code{st_mode} value corresponding to @var{dtype}.
@end deftypefun
@end table
you where in the manual you can find more information about how to use
it.
+@c This table runs wide. Shrink fonts.
+@iftex
+@indexfonts @rm
+@end iftex
@table @code
@comment summary.texi is generated from the other Texinfo files.
@comment See the Makefile and summary.awk for the details.
@include summary.texi
@end table
+@iftex
+@textfonts @rm
+@end iftex
General Public License rather than by this special one.
@iftex
-@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+@unnumberedsec TERMS AND CONDITIONS FOR COPYING,@*DISTRIBUTION AND MODIFICATION
@end iftex
@ifinfo
@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@c We need some definitions here.
-@ifclear cdot
@ifhtml
-@set cdot ·
-@macro mul
-·
-@end macro
+@set mult ·
@end ifhtml
@iftex
-@set cdot ·
-@macro mul
-@cdot
-@end macro
+@set mult @cdot
@end iftex
-@ifclear cdot
-@set cdot x
+@ifclear mult
+@set mult x
+@end ifclear
@macro mul
-x
+@value{mult}
@end macro
-@end ifclear
-@end ifclear
@iftex
@set infty @infty
@end iftex
@deftypefun int feholdexcept (fenv_t *@var{envp})
Store the current floating-point environment in the object pointed to by
@var{envp}. Afterwards, all exception flags are cleared and if
-available a mode is installed which continues on all exception and does
+available a mode is installed which continues on all exceptions and does
not cause a trap to occur. In this case a nonzero value is returned.
If the floating-point implementation does not support such a non-stop
@itemize @bullet
@item
-Pointed to objects which previously were initialized by a call to
-@code{fegetenv} or @code{feholdexcept}.
+Pointers to @code{fenv_t} objects which were initialized previously by a
+call to @code{fegetenv} or @code{feholdexcept}.
@item
@vindex FE_DFL_ENV
The special macro @code{FE_DFL_ENV} which represents the floating-point
@vindex FE_NOMASK_ENV
If possible, the GNU C Library defines a macro @code{FE_NOMASK_ENV}
-which represents an environment where no exception is masked and so each
-raised exception causes a trap to occur. Whether this macro is available can easily be tested using @code{#ifdef}.
+which represents an environment where no exceptions are masked, so every
+exception raised causes a trap to occur. You can test for this macro
+using @code{#ifdef}.
-Some platforms might define further predefined environments.
+Some platforms might define other predefined environments.
@end itemize
@noindent
main (void)
@{
nl_catd catdesc = catopen ("hello.cat", NL_CAT_LOCALE);
- printf (catgets (catdesc, SetMainSet, SetMainHello, "Hello, world!\n"));
+ printf (catgets (catdesc, SetMainSet, SetMainHello,
+ "Hello, world!\n"));
catclose (catdesc);
return 0;
@}
The address of an alternative implementation of the @code{lstat}
function to get information about an object in the filesystems, not
following symbolic links. It is used if the @code{GLOB_ALTDIRFUNC} bit
-is set in the flag parameter. The type of this field is @w{@code{int
-(*) (const char *, struct stat *)}}.
+is set in the flag parameter. The type of this field is @code{@w{int
+(*) (const char *,} @w{struct stat *)}}.
This is a GNU extension.
@end table
@code{regexec} reports nonuse of the ``na'' subexpression.
Another place where this rule applies is when the regular expression
-@w{@samp{\(ba\(na\)*s \|nefer\(ti\)* \)*}} matches @samp{bananas nefertiti}.
-The ``na'' subexpression does match in the first word, but it doesn't
-match in the second word because the other alternative is used there.
-Once again, the second repetition of the outer subexpression overrides
-the first, and within that second repetition, the ``na'' subexpression
-is not used. So @code{regexec} reports nonuse of the ``na''
-subexpression.
+@smallexample
+\(ba\(na\)*s \|nefer\(ti\)* \)*
+@end smallexample
+@noindent
+matches @samp{bananas nefertiti}. The ``na'' subexpression does match
+in the first word, but it doesn't match in the second word because the
+other alternative is used there. Once again, the second repetition of
+the outer subexpression overrides the first, and within that second
+repetition, the ``na'' subexpression is not used. So @code{regexec}
+reports nonuse of the ``na'' subexpression.
@node Regexp Cleanup
@subsection POSIX Regexp Matching Cleanup
@table @code
@item int w_termsig
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
@code{WTERMSIG} macro.
@item int w_coredump
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
@code{WCOREDUMP} macro.
@item int w_retcode
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
@code{WEXITSTATUS} macro.
@item int w_stopsig
-The value of this member is the same as the result of the
+The value of this member is the same as that of the
@code{WSTOPSIG} macro.
@end table
processes with the same effective user ID.
@end table
-A process can send a signal @var{signum} to itself with a call like
-@w{@code{kill (getpid(), @var{signum})}}. If @code{kill} is used by a
-process to send a signal to itself, and the signal is not blocked, then
-@code{kill} delivers at least one signal (which might be some other
-pending unblocked signal instead of the signal @var{signum}) to that
-process before it returns.
+A process can send a signal to itself with a call like @w{@code{kill
+(getpid(), @var{signum})}}. If @code{kill} is used by a process to send
+a signal to itself, and the signal is not blocked, then @code{kill}
+delivers at least one signal (which might be some other pending
+unblocked signal instead of the signal @var{signum}) to that process
+before it returns.
The return value from @code{kill} is zero if the signal can be sent
successfully. Otherwise, no signal is sent, and a value of @code{-1} is
the integer from the structure or put the integer into a structure.
The following basic definitions for Internet addresses appear in the
-header file @file{netinet/in.h}:
+header file@*@file{netinet/in.h}:
@pindex netinet/in.h
@comment netinet/in.h
@subsubsection Host Address Functions
@pindex arpa/inet.h
+@noindent
These additional functions for manipulating Internet addresses are
-declared in @file{arpa/inet.h}. They represent Internet addresses in
+declared in@*@file{arpa/inet.h}. They represent Internet addresses in
network byte order; they represent network numbers and
local-address-within-network numbers in host byte order.
@xref{Byte Order}, for an explanation of network and host byte order.
find such a service, it returns a null pointer.
@end deftypefun
+@noindent
You can also scan the services database using @code{setservent},
@code{getservent}, and @code{endservent}. Be careful in using these
functions, because they are not reentrant.
@var{level} for socket @var{socket}. The value of the option is passed
in the buffer @var{optval}, which has size @var{optlen}.
+@c Argh. -zw
+@iftex
+@hfuzz 6pt
The return value and error codes for @code{setsockopt} are the same as
for @code{getsockopt}.
+@end iftex
+@ifinfo
+The return value and error codes for @code{setsockopt} are the same as
+for @code{getsockopt}.
+@end ifinfo
+
@end deftypefun
@node Socket-Level Options
@end deftypevr
@pindex sys/socket.h
+@noindent
Here is a table of socket-level option names; all are defined in the
-header file @file{sys/socket.h}.
+header file@*@file{sys/socket.h}.
@table @code
@comment sys/socket.h
@comment Extra blank lines make it look better.
@table @code
@item HOME
-@cindex HOME environment variable
+@cindex @code{HOME} environment variable
@cindex home directory
This is a string representing the user's @dfn{home directory}, or
@c !!! also USER
@item LOGNAME
-@cindex LOGNAME environment variable
+@cindex @code{LOGNAME} environment variable
This is the name that the user used to log in. Since the value in the
environment can be tweaked arbitrarily, this is not a reliable way to
this lets the user specify the value.
@item PATH
-@cindex PATH environment variable
+@cindex @code{PATH} environment variable
A @dfn{path} is a sequence of directory names which is used for
searching for a file. The variable @code{PATH} holds a path used
@c !!! also TERMCAP
@item TERM
-@cindex TERM environment variable
+@cindex @code{TERM} environment variable
This specifies the kind of terminal that is receiving program output.
Some programs can make use of this information to take advantage of
Manual}) use the @code{TERM} environment variable, for example.
@item TZ
-@cindex TZ environment variable
+@cindex @code{TZ} environment variable
This specifies the time zone. @xref{TZ Variable}, for information about
the format of this string and how it is used.
@item LANG
-@cindex LANG environment variable
+@cindex @code{LANG} environment variable
This specifies the default locale to use for attribute categories where
neither @code{LC_ALL} nor the specific environment variable for that
@ignore
@c I doubt this really exists
@item LC_ALL
-@cindex LC_ALL environment variable
+@cindex @code{LC_ALL} environment variable
This is similar to the @code{LANG} environment variable. However, its
value takes precedence over any values provided for the individual
@end ignore
@item LC_ALL
-@cindex LC_ALL environment variable
+@cindex @code{LC_ALL} environment variable
If this environment variable is set it overrides the selection for all
the locales done using the other @code{LC_*} environment variables. The
in this case.
@item LC_COLLATE
-@cindex LC_COLLATE environment variable
+@cindex @code{LC_COLLATE} environment variable
This specifies what locale to use for string sorting.
@item LC_CTYPE
-@cindex LC_CTYPE environment variable
+@cindex @code{LC_CTYPE} environment variable
This specifies what locale to use for character sets and character
classification.
@item LC_MESSAGES
-@cindex LC_MESSAGES environment variable
+@cindex @code{LC_MESSAGES} environment variable
This specifies what locale to use for printing messages and to parse
responses.
@item LC_MONETARY
-@cindex LC_MONETARY environment variable
+@cindex @code{LC_MONETARY} environment variable
This specifies what locale to use for formatting monetary values.
@item LC_NUMERIC
-@cindex LC_NUMERIC environment variable
+@cindex @code{LC_NUMERIC} environment variable
This specifies what locale to use for formatting numbers.
@item LC_TIME
-@cindex LC_TIME environment variable
+@cindex @code{LC_TIME} environment variable
This specifies what locale to use for formatting date/time values.
@item NLSPATH
-@cindex NLSPATH environment variable
+@cindex @code{NLSPATH} environment variable
This specifies the directories in which the @code{catopen} function
looks for message translation catalogs.
@item _POSIX_OPTION_ORDER
-@cindex _POSIX_OPTION_ORDER environment variable.
+@cindex @code{_POSIX_OPTION_ORDER} environment variable.
If this environment variable is defined, it suppresses the usual
reordering of command line arguments by @code{getopt} and
@node I/O on Streams, Low-Level I/O, I/O Overview, Top
@chapter Input/Output on Streams
+@c fix an overfull:
+@tex
+\hyphenation{which-ever}
+@end tex
This chapter describes the functions for creating streams and performing
input and output operations on them. As discussed in @ref{I/O
@group
if (nchars >= size)
@{
- /* @r{Reallocate buffer now that we know how much space is needed.} */
+ /* @r{Reallocate buffer now that we know
+ how much space is needed.} */
buffer = (char *) xrealloc (buffer, nchars + 1);
/* @r{Try again.} */
- snprintf (buffer, size, "value of %s is %s", name, value);
+ snprintf (buffer, size, "value of %s is %s",
+ name, value);
@}
/* @r{The last call worked, return the string.} */
return buffer;
For example:
@smallexample
-#define myprintf(a, b, c, d, e, rest...) printf (mytemplate , ## rest...)
+#define myprintf(a, b, c, d, e, rest...) \
+ printf (mytemplate , ## rest...)
@end smallexample
@noindent
the handler when called needs to be able to get the options specified in
the template.
-Both the @var{handler-function} and @var{arginfo-function} arguments
-to @code{register_printf_function} accept an argument that points to a
-@code{struct printf_info}, which contains information about the options
-appearing in an instance of the conversion specifier. This data type
-is declared in the header file @file{printf.h}.
+Both the @var{handler-function} and @var{arginfo-function} accept an
+argument that points to a @code{struct printf_info}, which contains
+information about the options appearing in an instance of the conversion
+specifier. This data type is declared in the header file
+@file{printf.h}.
@pindex printf.h
@comment printf.h
@dfn{typeahead buffer}. It holds the characters that have been received
from the terminal but not yet read by any process.
-The size of the terminal's input queue is described by the
-@code{MAX_INPUT} and @w{@code{_POSIX_MAX_INPUT}} parameters; see @ref{Limits
-for Files}. You are guaranteed a queue size of at least
-@code{MAX_INPUT}, but the queue might be larger, and might even
-dynamically change size. If input flow control is enabled by setting
-the @code{IXOFF} input mode bit (@pxref{Input Modes}), the terminal
-driver transmits STOP and START characters to the terminal when
-necessary to prevent the queue from overflowing. Otherwise, input may
-be lost if it comes in too fast from the terminal. In canonical mode,
-all input stays in the queue until a newline character is received, so
-the terminal input queue can fill up when you type a very long line.
-@xref{Canonical or Not}.
+The size of the input queue is described by the @code{MAX_INPUT} and
+@w{@code{_POSIX_MAX_INPUT}} parameters; see @ref{Limits for Files}. You
+are guaranteed a queue size of at least @code{MAX_INPUT}, but the queue
+might be larger, and might even dynamically change size. If input flow
+control is enabled by setting the @code{IXOFF} input mode bit
+(@pxref{Input Modes}), the terminal driver transmits STOP and START
+characters to the terminal when necessary to prevent the queue from
+overflowing. Otherwise, input may be lost if it comes in too fast from
+the terminal. In canonical mode, all input stays in the queue until a
+newline character is received, so the terminal input queue can fill up
+when you type a very long line. @xref{Canonical or Not}.
@cindex terminal output queue
The @dfn{terminal output queue} is like the input queue, but for output;