- </BODY>
- <H1>Gnulib Module List</H1>
- This is a list of the modules which make up gnulib, with dependencies.
- <H2><A HREF="#ansic_sup">Support for systems lacking ANSI C 89</A></H2>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=c-bs-a">c-bs-a</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Determine portability of "\a".
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=assert">assert</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Allow the installer to disable assertions through "configure --disable-assert".
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=exit">exit</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/exit.html">exit</A>() function: program termination.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=atexit">atexit</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/atexit.html">atexit</A>() function: register a function to be called at program termination.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strtod">strtod</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strtod.html">strtod</A>() function: convert string to 'double'.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strtol">strtol</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strtol.html">strtol</A>() function: convert string to 'long'.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strtoul">strtoul</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strtoul.html">strtoul</A>() function: convert string to 'unsigned long'.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memchr">memchr</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/memchr.html">memchr</A>() function: scan memory for a byte.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memcmp">memcmp</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/memcmp.html">memcmp</A>() function: compare memory areas.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memcpy">memcpy</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/memcpy.html">memcpy</A>() function: copy memory area.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memmove">memmove</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/memmove.html">memmove</A>() function: copy memory area.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memset">memset</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/memset.html">memset</A>() function: fill memory with a constant byte.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strcspn">strcspn</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strcspn.html">strcspn</A>() function: search a string for any of a set of characters.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strpbrk">strpbrk</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strpbrk.html">strpbrk</A>() function: search a string for any of a set of characters.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strstr">strstr</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strstr.html">strstr</A>() function: search for a substring in a string.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strerror">strerror</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strerror.html">strerror</A>() function: return string describing error code.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=mktime">mktime</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/mktime.html">mktime</A>() function: convert broken-down time to linear time.
- </TR>
- </TABLE>
- These modules are not listed among dependencies below, for simplicity.
- <H2><A HREF="#ansic_enh">Enhancements for ANSI C 89 functions</A></H2>
- <H3><A HREF="#ansic_enh_stdlib_memory">Memory management functions <stdlib.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=malloc">malloc</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/malloc.html">malloc</A>() function that is glibc compatible.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=realloc">realloc</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/realloc.html">realloc</A>() function that is glibc compatible.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_enh_time_datetime">Date and time <time.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strftime">strftime</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">nstrftime() function: convert date and time to string, with GNU extensions.
- </TR>
- </TABLE>
- <H2><A HREF="#ansic_ext">Extra functions based on ANSI C 89</A></H2>
- <H3><A HREF="#ansic_ext_stdlib_memory">Memory management functions <stdlib.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xalloc">xalloc</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation with out-of-memory checking.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=alloca">alloca</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation on the stack.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=bumpalloc">bumpalloc</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Increase table allocation by one element.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_stdlib_arith">Integer arithmetic functions <stdlib.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=gcd">gcd</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Greatest common divisor.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=minmax">minmax</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">MIN, MAX macros.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_stdlib_env">Environment variables <stdlib.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=putenv">putenv</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/putenv.html">putenv</A>() function: change or add an environment variable.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=setenv">setenv</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/setenv.html">setenv</A>() function: set an environment variable.
-<A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/unsetenv.html">unsetenv</A>() function: remove an environment variable.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xsetenv">xsetenv</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">xsetenv() function: set an environment variable, with out-of-memory checking.
-<A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/unsetenv.html">unsetenv</A>() function: remove an environment variable.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_ctype">Character handling <ctype.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=c-ctype">c-ctype</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Character handling in C locale.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_string">String handling <string.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=bcopy">bcopy</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Old BSD <A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/bcopy.html">bcopy</A>() function: copy memory area.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memrchr">memrchr</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">memrchr() function: scan memory for a byte, from the right end.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=stpcpy">stpcpy</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">stpcpy() function: copy a string, returning a pointer to its end.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=stpncpy">stpncpy</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">stpncpy() function: copy a size-bounded string, returning a pointer to its end.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strcase">strcase</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Case-insensitive string comparison functions.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strchrnul">strchrnul</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strchrnul(): Find the first occurrence of C in S or the final NUL byte.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strdup">strdup</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/onlinepubs/007904975/functions/strdup.html">strdup</A>() function: duplicate a string.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strnlen">strnlen</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strnlen() function: determine the length of a size-bounded string.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strndup">strndup</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strndup() function: duplicate a size-bounded string.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_stdlib_conv">Numeric conversion functions <stdlib.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xstrtod">xstrtod</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert string to 'double', with error checking.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xstrtol">xstrtol</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert string to 'long` or 'unsigned long', with error checking.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_time_datetime">Date and time <time.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=getdate">getdate</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert a date/time string to linear time.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_stdio">Input/Output <stdio.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=unlocked-io">unlocked-io</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Enable faster, non-thread-safe stdio functions if available.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=vasnprintf">vasnprintf</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">vsprintf with automatic memory allocation and bounded output size.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=vasprintf">vasprintf</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">vsprintf with automatic memory allocation.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_argv">Command-line arguments</A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=argmatch">argmatch</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Search for an exact or abbreviated match of a string in an array of strings.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=version-etc">version-etc</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Print --version output.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=long-options">long-options</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Handle --help and --version options.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_crypto">Cryptographic computations</A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=md5">md5</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compute MD5 checksum.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=sha">sha</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compute SHA checksum.
- </TR>
- </TABLE>
- <H3><A HREF="#ansic_ext_misc">Misc</A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=diacrit">diacrit</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Decomposition of composed ISO-8859-1 characters.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=getline">getline</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read a line from a stream.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=linebuffer">linebuffer</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read a line from a stream.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=obstack">obstack</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation, optimized for stack-like allocation patterns.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=hash-pjw">hash-pjw</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compute a hash value for a NUL-terminated string.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=hash">hash</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Parametrizable hash table.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=readtokens">readtokens</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read tokens from a stream.
- </TR>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strverscmp">strverscmp</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compare strings holding version numbers.
- </TR>
- </TABLE>
- <H2><A HREF="#isoc_sup">Support for systems lacking ISO C 99</A></H2>
- <H3><A HREF="#isoc_sup_stdbool">Boolean type and values <stdbool.h></A></H3>
- <TABLE>
- <TR WIDTH="100%">
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=stdbool">stdbool</A>
- <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">An <stdbool.h> that nearly conforms to C99.
+ <H1>Gnulib Module List</H1>
+ This is a list of the modules which make up gnulib, with dependencies.
+ <H2><A HREF="#ansic_sup">Support for systems lacking ANSI C 89</A></H2>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=assert">assert</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Allow the installer to disable assertions through "configure --disable-assert".
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=dummy">dummy</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">A dummy file, to make sure the library is non-empty.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=exit">exit</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/exit.html">exit</A>() function: program termination.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=atexit">atexit</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/atexit.html">atexit</A>() function: register a function to be called at program termination.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strtod">strtod</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strtod.html">strtod</A>() function: convert string to 'double'.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strtol">strtol</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strtol.html">strtol</A>() function: convert string to 'long'.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strtoul">strtoul</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strtoul.html">strtoul</A>() function: convert string to 'unsigned long'.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memchr">memchr</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/memchr.html">memchr</A>() function: scan memory for a byte.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memcmp">memcmp</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/memcmp.html">memcmp</A>() function: compare memory areas.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memcpy">memcpy</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/memcpy.html">memcpy</A>() function: copy memory area.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memmove">memmove</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/memmove.html">memmove</A>() function: copy memory area.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memset">memset</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/memset.html">memset</A>() function: fill memory with a constant byte.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strcspn">strcspn</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strcspn.html">strcspn</A>() function: search a string for any of a set of characters.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strpbrk">strpbrk</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strpbrk.html">strpbrk</A>() function: search a string for any of a set of characters.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strstr">strstr</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strstr.html">strstr</A>() function: search for a substring in a string.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strerror">strerror</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strerror.html">strerror</A>() function: return string describing error code.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=mktime">mktime</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/mktime.html">mktime</A>() function: convert broken-down time to linear time.
+ </TR>
+ </TABLE>
+ Most of these modules are not listed among dependencies below, for simplicity.
+ <H2><A HREF="#ansic_enh">Enhancements for ANSI C 89 functions</A></H2>
+ <H3><A HREF="#ansic_enh_assert_diagnostics">Diagnostics <assert.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=verify">verify</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compile-time assert-like macros.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_enh_stdlib_memory">Memory management functions <stdlib.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=calloc">calloc</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/calloc.html">calloc</A>() function that is glibc compatible.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=eealloc">eealloc</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation with expensive empty allocations (glibc compatible).
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=free">free</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Work around incompatibility on older systems where free (NULL) fails.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=malloc">malloc</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/malloc.html">malloc</A>() function that is glibc compatible.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=realloc">realloc</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/realloc.html">realloc</A>() function that is glibc compatible.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=pagealign_alloc">pagealign_alloc</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation aligned on page boundaries.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_enh_time_datetime">Date and time <time.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=fprintftime">fprintftime</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">like nstrftime, but output the formatted date to a FILE* stream
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strftime">strftime</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">nstrftime() function: convert date and time to string, with GNU extensions.
+ </TR>
+ </TABLE>
+ <H2><A HREF="#ansic_ext">Extra functions based on ANSI C 89</A></H2>
+ <H3><A HREF="#ansic_ext_stdlib_memory">Memory management functions <stdlib.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xsize">xsize</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Checked size_t computations.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xalloc">xalloc</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation with out-of-memory checking. Also see xalloc-die.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xalloc-die">xalloc-die</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Report a memory allocation failure and exit.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=alloca">alloca</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation on the stack.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=alloca-opt">alloca-opt</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation on the stack, as an optional optimization.
+It allows using the alloca() macro if and only if the autoconf tests define
+HAVE_ALLOCA.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=allocsa">allocsa</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Safe automatic memory allocation.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xallocsa">xallocsa</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Safe automatic memory allocation with out of memory checking.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_stdlib_arith">Integer arithmetic functions <stdlib.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=gcd">gcd</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Greatest common divisor.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=minmax">minmax</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">MIN, MAX macros.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_stdlib_env">Environment variables <stdlib.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=putenv">putenv</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/putenv.html">putenv</A>() function: change or add an environment variable.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=setenv">setenv</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/setenv.html">setenv</A>() function: set an environment variable.
+<A HREF="http://www.opengroup.org/susv3xsh/unsetenv.html">unsetenv</A>() function: remove an environment variable.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xsetenv">xsetenv</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">xsetenv() function: set an environment variable, with out-of-memory checking.
+<A HREF="http://www.opengroup.org/susv3xsh/unsetenv.html">unsetenv</A>() function: remove an environment variable.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_ctype">Character handling <ctype.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=c-ctype">c-ctype</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Character handling in C locale.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_string">String handling <string.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=bcopy">bcopy</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Old BSD <A HREF="http://www.opengroup.org/susv3xsh/bcopy.html">bcopy</A>() function: copy memory area.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memmem">memmem</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">memmem() function: locate first substring in a buffer.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=mempcpy">mempcpy</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">mempcpy() function: copy memory area, return point after last written byte.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=memrchr">memrchr</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">memrchr() function: scan memory for a byte, from the right end.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=stpcpy">stpcpy</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">stpcpy() function: copy a string, returning a pointer to its end.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=stpncpy">stpncpy</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">stpncpy() function: copy a size-bounded string, returning a pointer to its end.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=c-strcase">c-strcase</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Case-insensitive string comparison functions in C locale.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strcase">strcase</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Case-insensitive string comparison functions.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=c-strcasestr">c-strcasestr</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Case-insensitive searching in a string in C locale.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strcasestr">strcasestr</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strcasestr() function: case-insensitive search for a substring in a string.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strchrnul">strchrnul</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strchrnul(): Find the first occurrence of C in S or the final NUL byte.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strdup">strdup</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%"><A HREF="http://www.opengroup.org/susv3xsh/strdup.html">strdup</A>() function: duplicate a string.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strnlen">strnlen</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strnlen() function: determine the length of a size-bounded string.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strnlen1">strnlen1</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Quick string length estimation.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strndup">strndup</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strndup() function: duplicate a size-bounded string.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strsep">strsep</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">strsep() function: extract token from string.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xstrndup">xstrndup</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Duplicate a bounded initial segment of a string, with out-of-memory checking.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_stdlib_conv">Numeric conversion functions <stdlib.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=c-strtod">c-strtod</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert string to double in C locale.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=c-strtold">c-strtold</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert string to long double in C locale.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xstrtod">xstrtod</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert string to 'double', with error checking.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xstrtol">xstrtol</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert string to 'long' or 'unsigned long', with error checking.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xstrtold">xstrtold</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert string to 'long double', with error checking.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_time_datetime">Date and time <time.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=getdate">getdate</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert a date/time string to linear time.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=timegm">timegm</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Convert calendar time to simple time, inverse of mktime.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=tzset">tzset</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">tzset - initialize time conversion information
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_stdio">Input/Output <stdio.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=unlocked-io">unlocked-io</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Enable faster, non-thread-safe stdio functions if available.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=fwriteerror">fwriteerror</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Detect write error on a stream.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=vasnprintf">vasnprintf</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">vsprintf with automatic memory allocation and bounded output size.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=vasprintf">vasprintf</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">vsprintf with automatic memory allocation.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=xvasprintf">xvasprintf</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">vasprintf and asprintf with out-of-memory checking. Also see xalloc-die.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_signal">Signal handling <signal.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=fatal-signal">fatal-signal</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Emergency actions in case of a fatal signal.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=raise">raise</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Send a signal to the executing process.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_argv">Command-line arguments</A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=argmatch">argmatch</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Search for an exact or abbreviated match of a string in an array of strings.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=version-etc">version-etc</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Print --version output.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=version-etc-fsf">version-etc-fsf</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Copyright variable for FSF projects
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=long-options">long-options</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Handle --help and --version options.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_container">Container data structures</A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=list">list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Abstract sequential list data type.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=array-list">array-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by an array.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=carray-list">carray-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by a circular array.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=linked-list">linked-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by a linked list.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=avltree-list">avltree-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by a binary tree.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=rbtree-list">rbtree-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by a binary tree.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=linkedhash-list">linkedhash-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by a hash table with a linked list.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=avltreehash-list">avltreehash-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by a hash table with a binary tree.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=rbtreehash-list">rbtreehash-list</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Sequential list data type implemented by a hash table with a binary tree.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=oset">oset</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Abstract ordered set data type.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=array-oset">array-oset</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Ordered set data type implemented by an array.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=avltree-oset">avltree-oset</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Ordered set data type implemented by a binary tree.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=rbtree-oset">rbtree-oset</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Ordered set data type implemented by a binary tree.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_crypto">Cryptographic computations</A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=md5">md5</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compute MD5 checksum.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=sha1">sha1</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compute SHA1 checksum.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#ansic_ext_misc">Misc</A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=base64">base64</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Encode binary data using printable characters (base64).
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=check-version">check-version</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Check version string compatibility.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=diacrit">diacrit</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Decomposition of composed ISO-8859-1 characters.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=getline">getline</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read a line from a stream.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=getdelim">getdelim</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read character delimited data from a stream.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=getnline">getnline</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read a line from a stream, with bounded memory allocation.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=getndelim2">getndelim2</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read a line from a stream, stopping at one of 2 delimiters, with bounded
+memory allocation.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=linebuffer">linebuffer</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read a line from a stream.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=obstack">obstack</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Memory allocation, optimized for stack-like allocation patterns.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=hash-pjw">hash-pjw</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compute a hash value for a NUL-terminated string.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=hash">hash</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Parametrizable hash table.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=readline">readline</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Simple implementation of readline.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=readtokens">readtokens</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read tokens from a stream.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=readtokens0">readtokens0</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Read NUL-separated tokens from a stream.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=strverscmp">strverscmp</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Compare strings holding version numbers.
+ </TR>
+ </TABLE>
+ <H2><A HREF="#isoc_sup">Support for systems lacking ISO C 99</A></H2>
+ <H3><A HREF="#isoc_sup_keywords">Keywords</A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=restrict">restrict</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">The C99 'restrict' keyword.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#isoc_sup_limits">Sizes of integer types <limits.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=ullong_max">ullong_max</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">The maximum unsigned long long value, as a preprocessor constant.
+ </TR>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=size_max">size_max</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">Provide SIZE_MAX.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#isoc_sup_stdarg">Variable arguments <stdarg.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=stdarg">stdarg</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">An <stdarg.h> that conforms to C99.
+ </TR>
+ </TABLE>
+ <H3><A HREF="#isoc_sup_stdbool">Boolean type and values <stdbool.h></A></H3>
+ <TABLE>
+ <TR WIDTH="100%">
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="20%"><A HREF="#module=stdbool">stdbool</A>
+ <TD ALIGN=LEFT VALIGN=TOP WIDTH="80%">An <stdbool.h> that nearly conforms to C99.