# Gnulib Module List

This is a list of the modules which make up gnulib, with dependencies.

## Support for systems lacking ANSI C 89

assert | Allow the installer to disable assertions through "configure --disable-assert".
dummy | A dummy file, to make sure the library is non-empty.
exit | exit() function: program termination.
atexit | atexit() function: register a function to be called at program termination.
strtod | strtod() function: convert string to 'double'.
strtol | strtol() function: convert string to 'long'.
strtoul | strtoul() function: convert string to 'unsigned long'.
memchr | memchr() function: scan memory for a byte.
memcmp | memcmp() function: compare memory areas.
memcpy | memcpy() function: copy memory area.
memmove | memmove() function: copy memory area.
memset | memset() function: fill memory with a constant byte.
strcspn | strcspn() function: search a string for any of a set of characters.
strpbrk | strpbrk() function: search a string for any of a set of characters.
strstr | strstr() function: search for a substring in a string.
strerror | strerror() function: return string describing error code.
mktime | mktime() function: convert broken-down time to linear time.

Most of these modules are not listed among dependencies below, for simplicity.

## Enhancements for ANSI C 89 functions

### Diagnostics <assert.h>

verify | Compile-time assert-like macros.

### Memory management functions <stdlib.h>

calloc | calloc() function that is glibc compatible.
eealloc | Memory allocation with expensive empty allocations (glibc compatible).
free | Work around incompatibility on older systems where free (NULL) fails.
malloc | malloc() function that is glibc compatible.
realloc | realloc() function that is glibc compatible.
pagealign_alloc | Memory allocation aligned on page boundaries.

### Date and time <time.h>

fprintftime | like nstrftime, but output the formatted date to a FILE* stream
strftime | nstrftime() function: convert date and time to string, with GNU extensions.

## Extra functions based on ANSI C 89

### Memory management functions <stdlib.h>

xsize | Checked size_t computations.
xalloc | Memory allocation with out-of-memory checking. Also see xalloc-die.
xalloc-die | Report a memory allocation failure and exit.
alloca | Memory allocation on the stack.
alloca-opt | 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.
allocsa | Safe automatic memory allocation.
xallocsa | Safe automatic memory allocation with out of memory checking.

### Integer arithmetic functions <stdlib.h>

gcd | Greatest common divisor.
minmax | MIN, MAX macros.

### Environment variables <stdlib.h>

putenv | putenv() function: change or add an environment variable.
setenv | setenv() function: set an environment variable. unsetenv() function: remove an environment variable.
xsetenv | xsetenv() function: set an environment variable, with out-of-memory checking. unsetenv() function: remove an environment variable.

### Character handling <ctype.h>

c-ctype | Character handling in C locale.

### String handling <string.h>

bcopy | Old BSD bcopy() function: copy memory area.
memmem | memmem() function: locate first substring in a buffer.
mempcpy | mempcpy() function: copy memory area, return point after last written byte.
memrchr | memrchr() function: scan memory for a byte, from the right end.
stpcpy | stpcpy() function: copy a string, returning a pointer to its end.
stpncpy | stpncpy() function: copy a size-bounded string, returning a pointer to its end.
c-strcase | Case-insensitive string comparison functions in C locale.
strcase | Case-insensitive string comparison functions.
c-strcasestr | Case-insensitive searching in a string in C locale.
strcasestr | strcasestr() function: case-insensitive search for a substring in a string.
strchrnul | strchrnul(): Find the first occurrence of C in S or the final NUL byte.
strdup | strdup() function: duplicate a string.
strnlen | strnlen() function: determine the length of a size-bounded string.
strnlen1 | Quick string length estimation.
strndup | strndup() function: duplicate a size-bounded string.
strsep | strsep() function: extract token from string.
xstrndup | Duplicate a bounded initial segment of a string, with out-of-memory checking.

### Numeric conversion functions <stdlib.h>

c-strtod | Convert string to double in C locale.
c-strtold | Convert string to long double in C locale.
xstrtod | Convert string to 'double', with error checking.
xstrtol | Convert string to 'long' or 'unsigned long', with error checking.
xstrtold | Convert string to 'long double', with error checking.

### Date and time <time.h>

getdate | Convert a date/time string to linear time.
timegm | Convert calendar time to simple time, inverse of mktime.
tzset | tzset - initialize time conversion information

### Input/Output <stdio.h>

unlocked-io | Enable faster, non-thread-safe stdio functions if available.
fwriteerror | Detect write error on a stream.
vasnprintf | vsprintf with automatic memory allocation and bounded output size.
vasprintf | vsprintf with automatic memory allocation.
xvasprintf | vasprintf and asprintf with out-of-memory checking. Also see xalloc-die.

### Signal handling <signal.h>

fatal-signal | Emergency actions in case of a fatal signal.
raise | Send a signal to the executing process.

### Command-line arguments

argmatch | Search for an exact or abbreviated match of a string in an array of strings.
version-etc | Print --version output.
version-etc-fsf | Copyright variable for FSF projects
long-options | Handle --help and --version options.

### Container data structures

list | Abstract sequential list data type.
array-list | Sequential list data type implemented by an array.
carray-list | Sequential list data type implemented by a circular array.
linked-list | Sequential list data type implemented by a linked list.
avltree-list | Sequential list data type implemented by a binary tree.
rbtree-list | Sequential list data type implemented by a binary tree.
linkedhash-list | Sequential list data type implemented by a hash table with a linked list.
avltreehash-list | Sequential list data type implemented by a hash table with a binary tree.
rbtreehash-list | Sequential list data type implemented by a hash table with a binary tree.
oset | Abstract ordered set data type.
array-oset | Ordered set data type implemented by an array.
avltree-oset | Ordered set data type implemented by a binary tree.
rbtree-oset | Ordered set data type implemented by a binary tree.

### Cryptographic computations

md5 | Compute MD5 checksum.
sha1 | Compute SHA1 checksum.

### Misc

base64 | Encode binary data using printable characters (base64).
check-version | Check version string compatibility.
diacrit | Decomposition of composed ISO-8859-1 characters.
getline | Read a line from a stream.
getdelim | Read character delimited data from a stream.
getnline | Read a line from a stream, with bounded memory allocation.
getndelim2 | Read a line from a stream, stopping at one of 2 delimiters, with bounded memory allocation.
linebuffer | Read a line from a stream.
obstack | Memory allocation, optimized for stack-like allocation patterns.
hash-pjw | Compute a hash value for a NUL-terminated string.
hash | Parametrizable hash table.
readline | Simple implementation of readline.
readtokens | Read tokens from a stream.
readtokens0 | Read NUL-separated tokens from a stream.
strverscmp | Compare strings holding version numbers.

## Support for systems lacking ISO C 99

### Keywords

restrict | The C99 'restrict' keyword.

### Sizes of integer types <limits.h>

ullong_max | The maximum unsigned long long value, as a preprocessor constant.
size_max | Provide SIZE_MAX.

### Variable arguments <stdarg.h>

stdarg | An <stdarg.h> that conforms to C99.

### Boolean type and values <stdbool.h>

stdbool | An <stdbool.h> that nearly conforms to C99. (Nearly: casts to bool may not work.)

### Integer types and values <stdint.h>

stdint | A <stdint.h> that nearly conforms to C99. Assumes typical host with 8-bit bytes, two's complement representation, and no padding or trap representations, with int widths equal to 8, 16, 32, and 64 bits. {uint,int}_fast{8,16,32,64}_t may not correspond to the fastest types available on the system. Macros are used instead of typedefs.

### Input/output <stdio.h>

snprintf | snprintf() function: print formatted output to a fixed length string
vsnprintf | vsnprintf() function: print formatted output from an stdarg argument list to a fixed length string

### Numeric conversion functions <stdlib.h>

strtoll | strtoll() function: convert string to 'long long'.
strtoull | strtoull() function: convert string to 'unsigned long long'.

### Functions for greatest-width integer types <inttypes.h>

strtoimax | strtoimax() function: convert string to 'intmax_t'.
strtoumax | strtoumax() function: convert string to 'uintmax_t'.

### Mathematics <math.h>

mathl | C99 functions for transcendental functions with long double arguments.

## Enhancements for ISO C 99 functions

## Extra functions based on ISO C 99

### Numeric conversion functions <stdlib.h>

intprops | Properties of integer types
inttostr | Convert integers to printable strings.
xstrtoimax | Convert string to 'intmax_t', with error checking.
xstrtoumax | Convert string to 'uintmax_t', with error checking.

### Extended multibyte and wide character utilities <wchar.h>

mbchar | Multibyte character data type.
mbiter | Iterating through multibyte strings.
mbuiter | Iterating through multibyte strings.
mbfile | Multibyte character I/O.

## Support for systems lacking POSIX:2001

chown | chown() function: change ownership of a file.
dup2 | dup2() function: duplicate an open file descriptor.
ftruncate | ftruncate() function: truncate an open file to a specified length.
getaddrinfo | getaddrinfo() function: Get address information.
getcwd | Return the current working directory.
getgroups | getgroups() function: return the supplementary group IDs of the current process.
gethostname | gethostname() function: Return machine's hostname.
getlogin_r | getlogin_r() function: Get user name to a buffer allocated by the caller.
getsubopt | getsubopt: Parse comma separate list into words.
gettimeofday | gettimeofday() function: return current time.
inet_ntop | Convert internet address from internal to printable, presentable format.
inet_pton | Convert internet address from presentation to internal, binary, format.
mkdir | mkdir() function: create a directory.
mkstemp | mkstemp() function: create a private temporary file.
mkdtemp | mkdtemp() function: create a private temporary directory.
poll | poll() function: wait for some event on a set of file descriptors.
readlink | readlink() function: read the value of a symbolic link.
lstat | lstat() function: return information about a file or symbolic link.
time_r | Reentrant time functions like localtime_r.
timespec | struct timespec.
nanosleep | nanosleep() function: pause execution for a specified time.
regex | Regular expression matching.
rename | rename() function: change the name or location of a file.
rmdir | rmdir() function: delete a directory.
ssize_t | Define ssize_t if it does not already exist.
strtok_r | strtok_r() function: split string into tokens, thread safe.
sys_stat | A <sys/stat.h> for systems with missing declarations.
unistd | A <unistd.h> for systems lacking it.
utime | utime() function: change access and/or modification times of a file.
wcwidth | Determine the number of screen columns needed for a character.

## Enhancements for POSIX:2001 functions

dirname | Extract specific portions of filenames.
getopt | Process command line arguments.
unistd-safer | File descriptor functions that avoid clobbering STD{IN,OUT,ERR}_FILENO.
fnmatch | GNU fnmatch() implementation.
fnmatch-posix | fnmatch() function: wildcard matching.
fnmatch-gnu | fnmatch() function: wildcard matching, with GNU extensions.
glob | glob() function: Search for files and directories with paths matching a pattern, with GNU extensions.
exclude | Manage list of filenames or wildcard patterns for --exclude option processing.

## Extra functions based on POSIX:2001

### Numeric conversion functions

human | Convert a number (usually a file size) to a human readable string, possibly with K/M/G suffix.

### File system functions

acl | Access control lists of files. (Unportable.)
backupfile | Determination of the filename of a backup file, according to user environment variables.
canonicalize | Return the canonical absolute name of a given file.
copy-file | Copying of files.
cycle-check | help detect directory cycles efficiently
fsusage | Return file system space usage info.
dirfd | Retrieving the file descriptor of an open directory stream. (Unportable.)
euidaccess | euidaccess() function: check effective user's permissions for a file.
file-type | Return a string describing the type of a file.
fileblocks | Estimate number of blocks of a file, if 'struct stat' doesn't have st_blocks.
filemode | Return a string (?rwxrwxrwx format) describing the type and permissions of a file.
filenamecat | Concatenate two arbitrary file names.
fts | Traverse a file hierarchy.
fts-lgpl | Traverse a file hierarchy (LPGL'ed version).
isdir | Determine whether a directory exists.
lchown | lchown() function: change ownership of a file.
mkancesdirs | Ensure the existence of the ancestor directories of a file.
mkdir-p | Ensure that a directory and its parents exist.
modechange | Manipulation of mode changes specified by strings (e.g. as first argument of chmod utility).
mountlist | Return list of mounted file systems.
pathname | Construct a full pathname by concatenating a directory name, a relative filename, and a suffix.
pathmax | Return maximum size of reasonable pathnames. (Unportable: Hurd has no limit.)
same | Determine whether two file names refer to the same directory entry of the same directory.
save-cwd | Save and restore the current working directory.
savedir | Return the entries of a directory (just the names) as an argz string.
stat-time | stat-related time functions
unlinkdir | Determine (and maybe change) whether we can unlink directories.
utimecmp | compare file time stamps
utimens | Set file access and modification times.
xgetcwd | Return the current working directory, without size limitations.
xreadlink | Return the contents of a symbolic link, without size limitations.

### File descriptor based Input/Output

fcntl-safer | File descriptor functions that avoid clobbering STD{IN,OUT,ERR}_FILENO.
safe-read | An interface to read() that retries after interrupts.
safe-write | An interface to write() that retries after interrupts.
full-read | An interface to read() that reads all it is asked to read.
full-write | An interface to write() that writes all it is asked to write.
binary-io | Binary mode I/O.

### File stream based Input/Output

fpending | Determine the number of bytes waiting in the output buffer of a stream.
closeout | Close stdout, checking for errors.
stdio-safer | File stream functions that avoid clobbering std{in,out,err}.
stdlib-safer | File stream functions that avoid clobbering std{in,out,err}.
getpass | getpass() function: read a password from /dev/tty.
getpass-gnu | getpass() function: read a password of arbitrary length from /dev/tty.

### Users and groups

getugroups | Return the group IDs of a user.
group-member | Determine whether the current process has the permissions of a given group ID.
idcache | Username <--> uid and groupname <--> gid conversions, with cache for speed.
userspec | Parse a `user:group' specifier (e.g. the first argument of chown utility).

### Date and time

gettime | Return current time, with nanosecond resolution.
settime | Set the current time, with nanosecond resolution.
posixtm | Convert a date/time string (POSIX syntax) to linear time or broken-down time.
xnanosleep | a more convenient interface to nanosleep

### Networking functions

xgethostname | Return machine's hostname, without size limitations.
canon-host | Canonicalize a host name: return a name other hosts can understand, i.e. usually the host name including FQDN.

### Multithreading

lock | Locking in multithreaded situations.
tls | Thread-local storage in multithreaded situations.

### Internationalization functions

gettext | Translate messages to user's native language.
gettext-h | Translate messages to user's native language if the gettext module is also used.
iconv | Character set conversion.
iconvme | Character set conversion of strings made easy, uses iconv.
localcharset | Return current locale's character encoding.
hard-locale | Determine whether the current locale is different from the "C" locale.
mbswidth | Determine the number of screen columns needed for a string.
memcasecmp | Case-insensitive memory area comparison.
memcoll | Locale dependent memory area comparison.
xmemcoll | Locale dependent memory area comparison, with error checking.
unicodeio | Unicode character output to streams with locale dependent encoding.
rpmatch | Locale dependent classification of a response as matching "yes" or "no".
yesno | Read a response from the user, and its classification as matching "yes" or "no".
ucs4-utf8 | Conversion UCS-4 to UTF-8.
ucs4-utf16 | Conversion UCS-4 to UTF-16.
utf8-ucs4 | Conversion UTF-8 to UCS-4.
utf16-ucs4 | Conversion UTF-16 to UCS-4.
linebreak | Line breaking (works also for East-Asian languages).

### Executing programs

cloexec | Set or clear the close-on-exec descriptor flag.
findprog | Locating a program in PATH.
wait-process | Waiting for a subprocess to finish.
execute | Creation of autonomous subprocesses.
pipe | Creation of subprocesses, communicating via pipes.
sh-quote | Shell quoting.

### Java

classpath | Java CLASSPATH handling.
javacomp | Compile a Java program.
javaexec | Execute a Java program.

### C#

csharpcomp | Compile a C# program.
csharpexec | Execute a C# program.

### Misc

argp | Hierarchical processing of command line arguments.
argz | Argv style string arrays in a single null delimited char*.
byteswap | Swap bytes of 16, 32 and 64 bit values.
exitfail | Set exit status for fatal signal.
c-stack | Stack overflow handling, causing program exit.
error | error() and error_at_line() functions: Error reporting.
extensions | Enable extensions in standard headers
getdomainname | getdomainname() function: Return machine's NIS domain name.
xgetdomainname | Return machine's domainname, without size limitations.
getloadavg | Return the current system load averages.
getpagesize | getpagesize() function: Return memory page size.
getusershell | Return names of valid user shells.
physmem | Return amount of total/available physical memory.
posixver | Determine desired POSIX specification version, according to user's environment variables.
progname | Program name management.
quotearg | Quote arguments for use in error messages.
quote | Quote arguments for use in error messages.
readutmp | Read entire utmp file into memory.
sig2str | Convert between signal names and signal numbers.
sysexits | Exit status codes for some BSD system programs.
visibility | Control of symbols exported by shared libraries.

## Support for building libraries and executables

ldd | Command to determine the dynamically linked dependencies of a program.
lib-ignore | If possible, ignore libraries that are not depended on.

## Support for building documentation

fdl | Provide the Free Documentation License.
gendocs | Generate manuals in several formats from Texinfo sources,

## Support for systems lacking ANSI C 89

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
assert | #include <assert.h> | --- | assert.m4 gl_ASSERT | ---
dummy | --- | dummy.c | --- | ---
exit | #include "exit.h" | --- | --- | ---
atexit | #include <stdlib.h> | atexit.c | atexit.m4 gl_FUNC_ATEXIT | ---
strtod | #include <stdlib.h> | strtod.c | strtod.m4 gl_FUNC_STRTOD | ---
strtol | #include <stdlib.h> | strtol.c | strtol.m4 gl_FUNC_STRTOL | ---
strtoul | #include <stdlib.h> | strtoul.c | strtoul.m4 gl_FUNC_STRTOUL | strtol
memchr | #include <string.h> | memchr.c | memchr.m4 gl_FUNC_MEMCHR | ---
memcmp | #include <string.h> | memcmp.c | memcmp.m4 gl_FUNC_MEMCMP | ---
memcpy | #include <string.h> | memcpy.c | memcpy.m4 gl_FUNC_MEMCPY | ---
memmove | #include <string.h> | memmove.c | memmove.m4 gl_FUNC_MEMMOVE | ---
memset | #include <string.h> | memset.c | memset.m4 gl_FUNC_MEMSET | ---
strcspn | #include <string.h> | strcspn.c | strcspn.m4 gl_FUNC_STRCSPN | ---
strpbrk | #include "strpbrk.h" | strpbrk.c | strpbrk.m4 gl_FUNC_STRPBRK | ---
strstr | #include "strstr.h" | strstr.c | strstr.m4 mbrtowc.m4 gl_FUNC_STRSTR | mbuiter
strerror | #include <string.h> | strerror.c | strerror.m4 gl_FUNC_STRERROR | ---
mktime | #include <time.h> | mktime.c | mktime.m4 gl_FUNC_MKTIME | time_r

Most of these modules are not listed among dependencies below, for simplicity.

## Enhancements for ANSI C 89 functions

### Diagnostics <assert.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
verify | #include "verify.h" | --- | --- | ---

### Memory management functions <stdlib.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
calloc | #include <stdlib.h> | calloc.c | calloc.m4 AC_FUNC_CALLOC | ---
eealloc | #include <eealloc.h> | eealloc.h | eealloc.m4 gl_EEALLOC | ---
free | #include <stdlib.h> | free.c | free.m4 gl_FUNC_FREE | ---
malloc | #include <stdlib.h> | malloc.c | AC_FUNC_MALLOC | ---
realloc | #include <stdlib.h> | realloc.c | AC_FUNC_REALLOC | ---
pagealign_alloc | #include "pagealign_alloc.h" | pagealign_alloc.c | mmap-anon.m4 pagealign_alloc.m4 gl_PAGEALIGN_ALLOC | error exit getpagesize gettext-h xalloc unistd

### Date and time <time.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
fprintftime | #include "fprintftime.h" | fprintftime.c | fprintftime.m4 gl_FPRINTFTIME | strftime
strftime | #include "strftime.h" | strftime.c | mbstate_t.m4 tm_gmtoff.m4 strftime.m4 gl_FUNC_GNU_STRFTIME | time_r stdbool

## Extra functions based on ANSI C 89

### Memory management functions <stdlib.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
xsize | #include "xsize.h" | --- | xsize.m4 gl_XSIZE | size_max
xalloc | #include "xalloc.h" | xmalloc.c | xalloc.m4 gl_XALLOC | xalloc-die
xalloc-die | #include "xalloc.h" | xalloc-die.c | --- | xalloc error gettext-h exitfail
alloca | #include <alloca.h> | alloca.c | --- | alloca-opt
alloca-opt | #include <alloca.h> | alloca_.h | alloca.m4 gl_FUNC_ALLOCA | ---
allocsa | #include "allocsa.h" | allocsa.c allocsa.valgrind | allocsa.m4 eealloc.m4 longlong.m4 longdouble.m4 gl_ALLOCSA | alloca-opt
xallocsa | #include "xallocsa.h" | xallocsa.c | --- | allocsa xalloc

### Integer arithmetic functions <stdlib.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
gcd | #include "gcd.h" | gcd.c | --- | ---
minmax | #include "minmax.h" | --- | minmax.m4 gl_MINMAX | ---

### Environment variables <stdlib.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
putenv | --- | putenv.c | putenv.m4 gl_FUNC_PUTENV | ---
setenv | #include "setenv.h" | setenv.c unsetenv.c | setenv.m4 gt_FUNC_SETENV | allocsa alloca-opt
xsetenv | #include "xsetenv.h" | xsetenv.c | --- | setenv error exit gettext-h

### Character handling <ctype.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
c-ctype | #include "c-ctype.h" | c-ctype.c | --- | stdbool

### String handling <string.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
bcopy | --- | bcopy.c | AC_REPLACE_FUNCS(bcopy) | ---
memmem | #include "memmem.h" | memmem.c | memmem.m4 gl_FUNC_MEMMEM | ---
mempcpy | #include "mempcpy.h" | mempcpy.c | mempcpy.m4 gl_FUNC_MEMPCPY | ---
memrchr | #include "memrchr.h" | memrchr.c | memrchr.m4 gl_FUNC_MEMRCHR | ---
stpcpy | #include "stpcpy.h" | stpcpy.c | stpcpy.m4 gl_FUNC_STPCPY | ---
stpncpy | #include "stpncpy.h" | stpncpy.c | stpncpy.m4 gl_FUNC_STPNCPY | ---
c-strcase | #include "c-strcase.h" | c-strcasecmp.c c-strncasecmp.c | --- | c-ctype
strcase | #include "strcase.h" | strcasecmp.c strncasecmp.c | strcase.m4 mbrtowc.m4 gl_STRCASE | mbuiter
c-strcasestr | #include "c-strcasestr.h" | c-strcasestr.c | --- | c-ctype
strcasestr | #include "strcasestr.h" | strcasestr.c | strcasestr.m4 mbrtowc.m4 gl_FUNC_STRCASESTR | mbuiter
strchrnul | #include "strchrnul.h" | strchrnul.c | strchrnul.m4 gl_FUNC_STRCHRNUL | ---
strdup | #include "strdup.h" | strdup.c | strdup.m4 gl_FUNC_STRDUP | ---
strnlen | #include "strnlen.h" | strnlen.c | strnlen.m4 gl_FUNC_STRNLEN | ---
strnlen1 | #include "strnlen1.h" | strnlen1.c | --- | memchr
strndup | #include "strndup.h" | strndup.c | strndup.m4 gl_FUNC_STRNDUP | strnlen
strsep | #include "strsep.h" | strsep.c | strsep.m4 gl_FUNC_STRSEP | strpbrk
xstrndup | #include "xstrndup.h" | xstrndup.c | xstrndup.m4 gl_XSTRNDUP | strndup xalloc

### Numeric conversion functions <stdlib.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
c-strtod | #include "c-strtod.h" | c-strtod.c | c-strtod.m4 gl_C_STRTOD | extensions xalloc
c-strtold | #include "c-strtod.h" | c-strtod.c c-strtold.c | c-strtod.m4 gl_C_STRTOLD | extensions xalloc
xstrtod | #include "xstrtod.h" | xstrtod.c | xstrtod.m4 gl_XSTRTOD | stdbool
xstrtol | #include "xstrtol.h" | xstrtol.c xstrtoul.c | ulonglong.m4 longlong.m4 stdint_h.m4 inttypes_h.m4 uintmax_t.m4 intmax_t.m4 xstrtol.m4 gl_XSTRTOL | exitfail error intprops
xstrtold | #include "xstrtod.h" | xstrtod.c xstrtold.c | xstrtod.m4 gl_XSTRTOLD | stdbool

### Date and time <time.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
getdate | #include "getdate.h" | getdate.y | bison.m4 tm_gmtoff.m4 getdate.m4 gl_GETDATE | timespec stdbool gettime mktime setenv xalloc
timegm | #include "timegm.h" | timegm.c | timegm.m4 gl_FUNC_TIMEGM | mktime time_r
tzset | #include <time.h> | --- | tzset.m4 gl_FUNC_TZSET_CLOBBER | gettimeofday

### Input/Output <stdio.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
unlocked-io | #include "unlocked-io.h" | --- | unlocked-io.m4 gl_FUNC_GLIBC_UNLOCKED_IO | extensions
fwriteerror | #include "fwriteerror.h" | fwriteerror.c | --- | stdbool
vasnprintf | #include "vasnprintf.h" | printf-args.h printf-args.c printf-parse.h printf-parse.c vasnprintf.c asnprintf.c | signed.m4 longdouble.m4 wchar_t.m4 wint_t.m4 longlong.m4 intmax_t.m4 stdint_h.m4 inttypes_h.m4 eoverflow.m4 vasnprintf.m4 gl_FUNC_VASNPRINTF | alloca-opt xsize
vasprintf | #include "vasprintf.h" | vasprintf.c asprintf.c | vasprintf.m4 gl_FUNC_VASPRINTF | vasnprintf
xvasprintf | #include "xvasprintf.h" | xvasprintf.c xasprintf.c xalloc.h | xvasprintf.m4 gl_XVASPRINTF | vasprintf xalloc-die xsize stdarg

### Signal handling <signal.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
fatal-signal | #include "fatal-signal.h" | fatal-signal.c | fatal-signal.m4 signalblocking.m4 sig_atomic_t.m4 gl_FATAL_SIGNAL | xalloc stdbool unistd
raise | --- | raise.c | AC_REPLACE_FUNCS(raise) | ---

### Command-line arguments

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
argmatch | #include "argmatch.h" | argmatch.c | --- | gettext-h error quotearg quote exit exitfail verify stdbool
version-etc | #include "version-etc.h" | version-etc.c | --- | gettext-h
version-etc-fsf | --- | version-etc-fsf.c | --- | version-etc
long-options | #include "long-options.h" | long-options.c | long-options.m4 gl_LONG_OPTIONS | version-etc

### Container data structures

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
list | #include "gl_list.h" | gl_list.c | gl_list.m4 gl_LIST | stdbool
array-list | #include "gl_array_list.h" | gl_array_list.c | --- | list xalloc xsize
carray-list | #include "gl_carray_list.h" | gl_carray_list.c | --- | list xalloc xsize
linked-list | #include "gl_linked_list.h" | gl_linked_list.c gl_anylinked_list1.h gl_anylinked_list2.h | --- | list xalloc
avltree-list | #include "gl_avltree_list.h" | gl_avltree_list.c gl_anyavltree_list1.h gl_anyavltree_list2.h gl_anytree_list1.h gl_anytree_list2.h | --- | list xalloc
rbtree-list | #include "gl_rbtree_list.h" | gl_rbtree_list.c gl_anyrbtree_list1.h gl_anyrbtree_list2.h gl_anytree_list1.h gl_anytree_list2.h | --- | list xalloc
linkedhash-list | #include "gl_linkedhash_list.h" | gl_linkedhash_list.c gl_anyhash_list1.h gl_anyhash_list2.h gl_anylinked_list1.h gl_anylinked_list2.h | --- | list size_max xalloc xsize
avltreehash-list | #include "gl_avltreehash_list.h" | gl_avltreehash_list.c gl_anyhash_list1.h gl_anyhash_list2.h gl_anyavltree_list1.h gl_anyavltree_list2.h gl_anytree_list1.h gl_anytree_list2.h gl_anytreehash_list1.h gl_anytreehash_list2.h | --- | list avltree-oset size_max xalloc xsize
rbtreehash-list | #include "gl_rbtreehash_list.h" | gl_rbtreehash_list.c gl_anyhash_list1.h gl_anyhash_list2.h gl_anyrbtree_list1.h gl_anyrbtree_list2.h gl_anytree_list1.h gl_anytree_list2.h gl_anytreehash_list1.h gl_anytreehash_list2.h | --- | list rbtree-oset size_max xalloc xsize
oset | #include "gl_oset.h" | gl_oset.c | gl_list.m4 gl_LIST | stdbool
array-oset | #include "gl_array_oset.h" | gl_array_oset.c | --- | oset xalloc xsize
avltree-oset | #include "gl_avltree_oset.h" | gl_avltree_oset.c gl_anytree_oset.h | --- | oset xalloc
rbtree-oset | #include "gl_rbtree_oset.h" | gl_rbtree_oset.c gl_anytree_oset.h | --- | oset xalloc

### Cryptographic computations

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
md5 | #include "md5.h" | md5.c | md5.m4 gl_MD5 | stdint
sha1 | #include "sha1.h" | sha1.c | sha1.m4 gl_SHA1 | stdint

### Misc

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
base64 | #include "base64.h" | base64.c | base64.m4 gl_FUNC_BASE64 | stdbool restrict
check-version | #include "check-version.h" | check-version.c | check-version.m4 gl_CHECK_VERSION | strverscmp
diacrit | #include "diacrit.h" | diacrit.c | --- | ---
getline | #include "getline.h" | getline.c | getline.m4 gl_FUNC_GETLINE | getdelim
getdelim | #include "getdelim.h" | getdelim.c | getdelim.m4 gl_FUNC_GETDELIM | ---
getnline | #include "getnline.h" | getnline.c | getnline.m4 gl_GETNLINE | getndelim2 ssize_t
getndelim2 | #include "getndelim2.h" | getndelim2.c | getndelim2.m4 gl_GETNDELIM2 | ssize_t
linebuffer | #include "linebuffer.h" | linebuffer.c | --- | xalloc
obstack | #include "obstack.h" | obstack.c | inttypes_h.m4 obstack.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 gl_OBSTACK | gettext-h exit exitfail
hash-pjw | #include "hash-pjw.h" | hash-pjw.c | --- | ---
hash | #include "hash.h" | hash.c | hash.m4 gl_HASH | stdbool xalloc
readline | #include "readline.h" | readline.c | readline.m4 gl_FUNC_READLINE | getline havelib
readtokens | #include "readtokens.h" | readtokens.c | readtokens.m4 gl_READTOKENS | xalloc stdbool
readtokens0 | #include "readtokens0.h" | readtokens0.c | --- | obstack stdbool
strverscmp | #include "strverscmp.h" | strverscmp.c | strverscmp.m4 gl_FUNC_STRVERSCMP | ---

## Support for systems lacking ISO C 99

### Keywords

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
restrict | --- | --- | restrict.m4 gl_C_RESTRICT | ---

### Sizes of integer types <limits.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
ullong_max | #include <limits.h> | --- | ullong_max.m4 gl_ULLONG_MAX | ---
size_max | #include "size_max.h" | --- | size_max.m4 gl_SIZE_MAX | ---

### Variable arguments <stdarg.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
stdarg | #include <stdarg.h> | --- | stdarg.m4 gl_STDARG_H | ---

### Boolean type and values <stdbool.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
stdbool | #include <stdbool.h> | stdbool_.h | stdbool.m4 AM_STDBOOL_H | ---

### Integer types and values <stdint.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
stdint | #include <stdint.h> | stdint_.h | stdint.m4 absolute-header.m4 longlong.m4 gl_STDINT_H | ---

### Input/output <stdio.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
snprintf | #include "snprintf.h" | snprintf.c | snprintf.m4 gl_FUNC_SNPRINTF | vasnprintf minmax
vsnprintf | #include "vsnprintf.h" | vsnprintf.c | vsnprintf.m4 gl_FUNC_VSNPRINTF | vasnprintf minmax

### Numeric conversion functions <stdlib.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
strtoll | #include <stdlib.h> | strtoll.c | longlong.m4 strtoll.m4 gl_FUNC_STRTOLL | strtol
strtoull | #include <stdlib.h> | strtoull.c | ulonglong.m4 strtoull.m4 gl_FUNC_STRTOULL | strtoul

### Functions for greatest-width integer types <inttypes.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
strtoimax | --- | strtoimax.c | longlong.m4 stdint_h.m4 inttypes_h.m4 intmax_t.m4 strtoimax.m4 gl_FUNC_STRTOIMAX | strtoll verify inttypes
strtoumax | --- | strtoumax.c | ulonglong.m4 stdint_h.m4 inttypes_h.m4 uintmax_t.m4 strtoumax.m4 gl_FUNC_STRTOUMAX | strtoimax strtoull inttypes

### Mathematics <math.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
mathl | #include "mathl.h" | acosl.c asinl.c atanl.c ceill.c cosl.c expl.c floorl.c frexpl.c ldexpl.c logl.c sincosl.c sinl.c sqrtl.c tanl.c trigl.c trigl.h | mathl.m4 gl_FUNC_LONG_DOUBLE_MATH | ---

## Enhancements for ISO C 99 functions

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on

## Extra functions based on ISO C 99

### Numeric conversion functions <stdlib.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
intprops | #include "intprops.h" | --- | --- | ---
inttostr | #include "inttostr.h" | imaxtostr.c inttostr.c offtostr.c umaxtostr.c | intmax_t.m4 inttostr.m4 inttypes_h.m4 longlong.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 gl_INTTOSTR | intprops
xstrtoimax | #include "xstrtol.h" | xstrtoimax.c | xstrtoimax.m4 gl_XSTRTOIMAX | xstrtol strtoimax
xstrtoumax | #include "xstrtol.h" | xstrtoumax.c | xstrtoumax.m4 gl_XSTRTOUMAX | xstrtol strtoumax

### Extended multibyte and wide character utilities <wchar.h>

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
mbchar | #if HAVE_WCHAR_H && HAVE_WCTYPE_H #include "mbchar.h" #endif | mbchar.c | mbchar.m4 gl_MBCHAR | stdbool wcwidth
mbiter | #if HAVE_MBRTOWC #include "mbiter.h" #endif | --- | mbiter.m4 mbrtowc.m4 gl_MBITER | mbchar stdbool
mbuiter | #if HAVE_MBRTOWC #include "mbuiter.h" #endif | --- | mbiter.m4 mbrtowc.m4 gl_MBITER | mbchar stdbool strnlen1
mbfile | #if HAVE_MBRTOWC #include "mbfile.h" #endif | --- | mbfile.m4 mbrtowc.m4 gl_MBFILE | mbchar stdbool

## Support for systems lacking POSIX:2001

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
chown | #include <unistd.h> | chown.c fchown-stub.c | chown.m4 gl_FUNC_CHOWN | ---
dup2 | #include <unistd.h> | dup2.c | dup2.m4 gl_FUNC_DUP2 | ---
ftruncate | #include <unistd.h> | ftruncate.c | ftruncate.m4 gl_FUNC_FTRUNCATE | ---
getaddrinfo | #include "getaddrinfo.h" | getaddrinfo.c gai_strerror.c | getaddrinfo.m4 gl_GETADDRINFO | restrict gettext-h snprintf socklen stdbool strdup sys_socket inet_ntop
getcwd | #include "getcwd.h" | getcwd.c | d-ino.m4 getcwd-abort-bug.m4 getcwd-path-max.m4 getcwd.m4 gl_FUNC_GETCWD | mempcpy extensions stdbool
getgroups | #include <unistd.h> | getgroups.c | getgroups.m4 gl_FUNC_GETGROUPS | xalloc
gethostname | --- | gethostname.c | gethostname.m4 gl_FUNC_GETHOSTNAME | ---
getlogin_r | #include "getlogin_r.h" | getlogin_r.c | getlogin_r.m4 gl_GETLOGIN_R | unistd
getsubopt | #include "getsubopt.h" | getsubopt.c | getsubopt.m4 gl_FUNC_GETSUBOPT | strchrnul
gettimeofday | #include <sys/time.h> | gettimeofday.c | gettimeofday.m4 AC_FUNC_GETTIMEOFDAY_CLOBBER | ---
inet_ntop | #include "inet_ntop.h" | inet_ntop.c | inet_ntop.m4 gl_INET_NTOP | restrict socklen sys_socket
inet_pton | #include "inet_pton.h" | inet_pton.c | inet_pton.m4 gl_INET_PTON | restrict socklen sys_socket
mkdir | #include <sys/stat.h> | mkdir.c | mkdir-slash.m4 gl_FUNC_MKDIR_TRAILING_SLASH | xalloc dirname
mkstemp | #include <stdlib.h> | mkstemp.c tempname.c | ulonglong.m4 stdint_h.m4 inttypes_h.m4 uintmax_t.m4 mkstemp.m4 gl_FUNC_MKSTEMP | stat-macros sys_stat
mkdtemp | #include "mkdtemp.h" | mkdtemp.c | ulonglong.m4 stdint_h.m4 inttypes_h.m4 uintmax_t.m4 mkdtemp.m4 gt_FUNC_MKDTEMP | unistd
poll | #include <poll.h> | poll.c poll_.h | poll.m4 gl_FUNC_POLL | ---
readlink | --- | readlink.c | readlink.m4 gl_FUNC_READLINK | ---
lstat | #include "lstat.h" | lstat.c | lstat.m4 gl_FUNC_LSTAT | stat-macros
time_r | #include "time_r.h" | time_r.c | time_r.m4 gl_TIME_R | extensions restrict
timespec | #include "timespec.h" | --- | timespec.m4 gl_TIMESPEC | extensions
nanosleep | #include <time.h> | nanosleep.c | nanosleep.m4 gl_FUNC_NANOSLEEP | timespec stdbool extensions
regex | #include "regex.h" | regex.c regex_internal.c regex_internal.h regexec.c regcomp.c | codeset.m4 regex.m4 gl_REGEX | alloca extensions gettext-h malloc restrict strcase ssize_t
rename | #include <stdio.h> | rename.c | rename.m4 vb_FUNC_RENAME | xalloc dirname
rmdir | #include <unistd.h> | rmdir.c | rmdir.m4 gl_FUNC_RMDIR | stat-macros
ssize_t | #include <sys/types.h> | --- | ssize_t.m4 gt_TYPE_SSIZE_T | ---
strtok_r | #include "strtok_r.h" | strtok_r.c | strtok_r.m4 gl_FUNC_STRTOK_R | restrict
sys_stat | #include <sys/stat.h> | stat_.h | absolute-header.m4 sys_stat_h.m4 gl_HEADER_SYS_STAT_H | ---
unistd | #include <unistd.h> | --- | unistd_h.m4 gl_HEADER_UNISTD | ---
utime | #if HAVE_UTIME_H # include <utime.h> #else # include <sys/utime.h> #endif | utime.c | utimbuf.m4 utime.m4 utimes.m4 utimes-null.m4 gl_FUNC_UTIME | safe-read full-write
wcwidth | #include "wcwidth.h" | --- | wcwidth.m4 wchar_t.m4 gl_FUNC_WCWIDTH | ---

## Enhancements for POSIX:2001 functions

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
dirname | #include "dirname.h" | dirname.c basename.c stripslash.c | dos.m4 dirname.m4 double-slash-root.m4 gl_DIRNAME | stdbool xalloc xstrndup
getopt | #include <getopt.h> | getopt_.h getopt.c getopt1.c getopt_int.h | getopt.m4 gl_GETOPT | gettext-h unistd
unistd-safer | #include "unistd-safer.h" | unistd--.h dup-safer.c fd-safer.c pipe-safer.c | unistd-safer.m4 gl_UNISTD_SAFER | ---
fnmatch | #include <fnmatch.h> | fnmatch_.h fnmatch.c fnmatch_loop.c | mbstate_t.m4 fnmatch.m4 # No macro. You should also use one of fnmatch-posix or fnmatch-gnu. | alloca stdbool
fnmatch-posix | #include "fnmatch.h" | --- | gl_FUNC_FNMATCH_POSIX | fnmatch
fnmatch-gnu | #include "fnmatch.h" | --- | gl_FUNC_FNMATCH_GNU | fnmatch
glob | #include <glob.h> | glob_.h glob-libc.h glob.c | d-type.m4 glob.m4 gl_GLOB | alloca extensions fnmatch getlogin_r mempcpy restrict stat-macros stdbool strdup unistd
exclude | #include "exclude.h" | exclude.c | exclude.m4 gl_EXCLUDE | xalloc strcase fnmatch-gnu stdbool verify

## Extra functions based on POSIX:2001

### Numeric conversion functions

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
human | #include "human.h" | human.c | ulonglong.m4 stdint_h.m4 inttypes_h.m4 uintmax_t.m4 human.m4 gl_HUMAN | gettext-h argmatch error intprops xstrtoumax stdbool

### File system functions

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
acl | #include "acl.h" | acl.c | acl.m4 AC_FUNC_ACL | ---
backupfile | #include "backupfile.h" | backupfile.c | dos.m4 d-ino.m4 backupfile.m4 gl_BACKUPFILE | argmatch dirname stdbool
canonicalize | #include "canonicalize.h" | canonicalize.c pathmax.h | canonicalize.m4 AC_FUNC_CANONICALIZE_FILE_NAME | cycle-check filenamecat stat-macros xalloc xgetcwd xreadlink
copy-file | #include "copy-file.h" | copy-file.c | copy-file.m4 gl_COPY_FILE | error safe-read full-write binary-io exit gettext-h unistd
cycle-check | #include "cycle-check.h" | cycle-check.c same-inode.h dev-ino.h | --- | stdbool
fsusage | #include "fsusage.h" | fsusage.c | ulonglong.m4 stdint_h.m4 inttypes_h.m4 uintmax_t.m4 fsusage.m4 gl_FSUSAGE | full-read stdbool
dirfd | #include "dirfd.h" | dirfd.c | dirfd.m4 gl_FUNC_DIRFD | ---
euidaccess | #include "euidaccess.h" | euidaccess.c | euidaccess.m4 gl_FUNC_EUIDACCESS | group-member stat-macros
file-type | #include "file-type.h" | file-type.c | file-type.m4 gl_FILE_TYPE | gettext-h stat-macros
fileblocks | --- | fileblocks.c | fileblocks.m4 gl_FILEBLOCKS | ---
filemode | #include "filemode.h" | filemode.c | filemode.m4 gl_FILEMODE | stat-macros
filenamecat | #include "filenamecat.h" | filenamecat.c | dos.m4 filenamecat.m4 gl_FILE_NAME_CONCAT | xalloc dirname
fts | #include "fts_.h" | fts.c fts-cycle.c | fts.m4 gl_FUNC_FTS | cycle-check dirfd hash lstat stdbool fcntl-safer
fts-lgpl | #include "fts_.h" | fts.c | fts.m4 gl_FUNC_FTS_LGPL | dirfd stdbool
isdir | --- | isdir.c | isdir.m4 gl_ISDIR | ---
lchown | #include "lchown.h" | lchown.c | lchown.m4 gl_FUNC_LCHOWN | chown stat-macros
mkancesdirs | #include "mkancesdirs.h" | mkancesdirs.c | mkancesdirs.m4 gl_MKANCESDIRS | dirname stat-macros
mkdir-p | #include "mkdir-p.h" | dirchownmod.c dirchownmod.h lchmod.h mkdir-p.c | lchmod.m4 mkdir-p.m4 gl_MKDIR_PARENTS | error gettext-h lchown mkancesdirs quote stat-macros stdbool
modechange | #include "modechange.h" | modechange.c | modechange.m4 gl_MODECHANGE | stat-macros xalloc
mountlist | #include "mountlist.h" | mountlist.c | ls-mntd-fs.m4 fstypename.m4 mountlist.m4 gl_MOUNTLIST | stdbool xalloc
pathname | #include "pathname.h" | concatpath.c | --- | xalloc stpcpy
pathmax | #include "pathmax.h" | --- | pathmax.m4 gl_PATHMAX | ---
same | #include "same.h" | same.c same-inode.h | same.m4 gl_SAME | xalloc error dirname stdbool
save-cwd | #include "save-cwd.h" | save-cwd.c | save-cwd.m4 gl_SAVE_CWD | chdir-long fcntl-safer xgetcwd stdbool
savedir | #include "savedir.h" | savedir.c | savedir.m4 gl_SAVEDIR | openat xalloc
stat-time | #include "stat-time.h" | --- | stat-time.m4 gl_STAT_TIME | timespec
unlinkdir | #include "unlinkdir.h" | unlinkdir.c | unlinkdir.m4 gl_UNLINKDIR | stdbool
utimecmp | #include "utimecmp.h" | utimecmp.c | utimecmp.m4 gl_UTIMECMP | hash stat-time timespec utimens xalloc intprops stdbool verify
utimens | #include "utimens.h" | utimens.c | utimbuf.m4 utimens.m4 utimes.m4 gl_UTIMENS | timespec
xgetcwd | #include "xgetcwd.h" | xgetcwd.c | xgetcwd.m4 gl_XGETCWD | getcwd xalloc stdbool
xreadlink | #include "xreadlink.h" | xreadlink.c | xreadlink.m4 gl_XREADLINK | xalloc readlink ssize_t

### File descriptor based Input/Output

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
fcntl-safer | #include "fcntl-safer.h" | fcntl--.h creat-safer.c open-safer.c | fcntl-safer.m4 gl_FCNTL_SAFER | unistd-safer
safe-read | #include "safe-read.h" | safe-read.c | safe-read.m4 gl_SAFE_READ | ssize_t
safe-write | #include "safe-write.h" | safe-write.c | safe-write.m4 gl_SAFE_WRITE | safe-read
full-read | #include "full-read.h" | full-read.c | --- | safe-read full-write
full-write | #include "full-write.h" | full-write.c | --- | safe-write
binary-io | #include "binary-io.h" | --- | --- | ---

### File stream based Input/Output

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
fpending | #include "__fpending.h" | __fpending.c | fpending.m4 gl_FUNC_FPENDING | ---
closeout | #include "closeout.h" | closeout.c | closeout.m4 gl_CLOSEOUT | gettext-h error quotearg fpending exitfail stdbool
stdio-safer | #include "stdio-safer.h" | stdio--.h fopen-safer.c | stdio-safer.m4 gl_STDIO_SAFER | unistd-safer
stdlib-safer | #include "stdlib-safer.h" | stdlib--.h mkstemp-safer.c | stdlib-safer.m4 gl_STDLIB_SAFER | mkstemp unistd-safer
getpass | #include "getpass.h" | getpass.c | getpass.m4 gl_FUNC_GETPASS | getline stdbool
getpass-gnu | #include "getpass.h" | getpass.c | getpass.m4 gl_FUNC_GETPASS_GNU | getline stdbool

### Users and groups

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
getugroups | --- | getugroups.c | getugroups.m4 gl_GETUGROUPS | ---
group-member | #include "group-member.h" | group-member.c | group-member.m4 gl_FUNC_GROUP_MEMBER | xalloc stdbool
idcache | --- | idcache.c | idcache.m4 gl_IDCACHE | xalloc
userspec | #include "userspec.h" | inttostr.h userspec.c | userspec.m4 gl_USERSPEC | posixver xalloc xstrtol strdup gettext-h intprops stdbool

### Date and time

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
gettime | #include "timespec.h" | gettime.c | clock_time.m4 gettime.m4 gl_GETTIME | gettimeofday timespec extensions
settime | --- | settime.c | clock_time.m4 settime.m4 gl_SETTIME | timespec extensions
posixtm | #include "posixtm.h" | posixtm.c | posixtm.m4 gl_POSIXTM | mktime stdbool
xnanosleep | #include "xnanosleep.h" | xnanosleep.c | xnanosleep.m4 gl_XNANOSLEEP | timespec intprops stdbool

### Networking functions

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
xgethostname | #include "xgethostname.h" | xgethostname.c | --- | gethostname xalloc
canon-host | #include "canon-host.h" | canon-host.c | canon-host.m4 gl_CANON_HOST | getaddrinfo strdup

### Multithreading

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
lock | #include "lock.h" | lock.c | lock.m4 gl_LOCK | havelib
tls | #include "tls.h" | tls.c | tls.m4 gl_TLS | lock

### Internationalization functions

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
gettext | #include "gettext.h" | --- | codeset.m4 gettext.m4 glibc2.m4 glibc21.m4 iconv.m4 intdiv0.m4 intmax.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 longdouble.m4 longlong.m4 nls.m4 po.m4 printf-posix.m4 progtest.m4 signed.m4 size_max.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 wchar_t.m4 wint_t.m4 xsize.m4 AM_GNU_GETTEXT([external]) AM_GNU_GETTEXT_VERSION([0.14.5]) | gettext-h havelib
gettext-h | #include "gettext.h" | --- | --- | ---
iconv | #include <iconv.h> | --- | iconv.m4 AM_ICONV | havelib
iconvme | #include "iconvme.h" | iconvme.c | iconvme.m4 gl_ICONVME | iconv strdup
localcharset | #include "localcharset.h" | localcharset.c config.charset ref-add.sin ref-del.sin | codeset.m4 glibc21.m4 localcharset.m4 gl_LOCALCHARSET | ---
hard-locale | #include "hard-locale.h" | hard-locale.c | hard-locale.m4 gl_HARD_LOCALE | stdbool strdup
mbswidth | #include "mbswidth.h" | mbswidth.c | mbstate_t.m4 mbrtowc.m4 mbswidth.m4 gl_MBSWIDTH | wcwidth
memcasecmp | #include "memcasecmp.h" | memcasecmp.c | memcasecmp.m4 gl_MEMCASECMP | ---
memcoll | #include "memcoll.h" | memcoll.c | memcoll.m4 gl_MEMCOLL | ---
xmemcoll | #include "xmemcoll.h" | xmemcoll.c | --- | memcoll gettext-h error quotearg exitfail
unicodeio | #include "unicodeio.h" | unicodeio.c | unicodeio.m4 gl_UNICODEIO | iconv gettext-h localcharset error
rpmatch | --- | rpmatch.c | rpmatch.m4 gl_FUNC_RPMATCH | gettext-h regex
yesno | #include "yesno.h" | yesno.c | yesno.m4 gl_YESNO | getline rpmatch stdbool
ucs4-utf8 | --- | ucs4-utf8.h | ucs4-utf.m4 gl_UCS4_UTF | ---
ucs4-utf16 | --- | ucs4-utf16.h | ucs4-utf.m4 gl_UCS4_UTF | ---
utf8-ucs4 | --- | utf8-ucs4.h | utf-ucs4.m4 gl_UTF_UCS4 | ---
utf16-ucs4 | --- | utf16-ucs4.h | utf-ucs4.m4 gl_UTF_UCS4 | ---
linebreak | #include "linebreak.h" | linebreak.c lbrkprop.h | linebreak.m4 gl_LINEBREAK | localcharset c-ctype iconv utf8-ucs4 utf16-ucs4 xsize

### Executing programs

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
cloexec | #include "cloexec.h" | cloexec.c | cloexec.m4 gl_CLOEXEC | stdbool
findprog | #include "findprog.h" | findprog.c | findprog.m4 eaccess.m4 gl_FINDPROG | stdbool xalloc pathname unistd
wait-process | #include "wait-process.h" | wait-process.c | wait-process.m4 sig_atomic_t.m4 gl_WAIT_PROCESS | fatal-signal error exit xalloc gettext-h stdbool unistd
execute | #include "execute.h" | execute.c w32spawn.h | execute.m4 gl_EXECUTE | error exit fatal-signal wait-process gettext-h stdbool strpbrk unistd
pipe | #include "pipe.h" | pipe.c w32spawn.h | pipe.m4 gl_PIPE | wait-process error exit fatal-signal gettext-h stdbool strpbrk unistd
sh-quote | #include "sh-quote.h" | sh-quote.c | --- | quotearg xalloc

### Java

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
classpath | #include "classpath.h" | classpath.c | --- | stdbool xsetenv xalloc
javacomp | #include "javacomp.h" | javacomp.c | --- | stdbool xallocsa execute pipe wait-process classpath xsetenv sh-quote safe-read xalloc error gettext-h javacomp-script
javaexec | #include "javaexec.h" | javaexec.c | javaexec.m4 gt_JAVAEXEC AC_CONFIG_FILES([javaexec.sh:build-aux/javaexec.sh.in]) | stdbool execute classpath xsetenv sh-quote pathname xalloc xallocsa error gettext-h

### C#

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
csharpcomp | #include "csharpcomp.h" | csharpcomp.c | --- | stdbool xallocsa execute pipe wait-process getline sh-quote safe-read error gettext-h csharpcomp-script
csharpexec | #include "csharpexec.h" | csharpexec.c classpath.h classpath.c | csharpexec.m4 csharp.m4 gt_CSHARPEXEC AC_CONFIG_FILES([csharpexec.sh:build-aux/csharpexec.sh.in]) | stdbool execute xsetenv sh-quote xalloc xallocsa error gettext-h

### Misc

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
argp | #include "argp.h" | argp-ba.c argp-eexst.c argp-fmtstream.c argp-fmtstream.h argp-fs-xinl.c argp-help.c argp-namefrob.h argp-parse.c argp-pin.c argp-pv.c argp-pvh.c argp-xinl.c | argp.m4 gl_ARGP | alloca dirname getopt strchrnul sysexits mempcpy strndup restrict strcase extensions vsnprintf
argz | #include <argz.h> | argz_.h argz.c | argz.m4 gl_FUNC_ARGZ | ---
byteswap | #include <byteswap.h> | byteswap_.h | byteswap.m4 gl_BYTESWAP | ---
exitfail | #include "exitfail.h" | exitfail.c | exitfail.m4 gl_EXITFAIL | exit
c-stack | #include "c-stack.h" | c-stack.c | c-stack.m4 gl_C_STACK | gettext-h exitfail unistd
error | #include "error.h" | error.c | error.m4 strerror_r.m4 gl_ERROR | ---
extensions | --- | --- | extensions.m4 dnl gl_USE_SYSTEM_EXTENSIONS must be added quite early to configure.ac. | ---
getdomainname | #include "getdomainname.h" | getdomainname.c | getdomainname.m4 gl_FUNC_GETDOMAINNAME | ---
xgetdomainname | #include "xgetdomainname.h" | xgetdomainname.c | --- | getdomainname xalloc
getloadavg | --- | getloadavg.c | AC_FUNC_GETLOADAVG | cloexec xalloc c-strtod intprops stdbool fcntl-safer
getpagesize | #include "getpagesize.h" | --- | getpagesize.m4 gl_GETPAGESIZE | ---
getusershell | --- | getusershell.c | getusershell.m4 gl_FUNC_GETUSERSHELL | stdio-safer xalloc
physmem | #include "physmem.h" | physmem.c | physmem.m4 gl_PHYSMEM | ---
posixver | #include "posixver.h" | posixver.c | posixver.m4 gl_POSIXVER | ---
progname | #include "progname.h" | progname.c | --- | ---
quotearg | #include "quotearg.h" | quotearg.c | mbstate_t.m4 mbrtowc.m4 quotearg.m4 gl_QUOTEARG | xalloc gettext-h stdbool
quote | #include "quote.h" | quote.c | quote.m4 gl_QUOTE | quotearg
readutmp | #include "readutmp.h" | readutmp.c | readutmp.m4 gl_READUTMP | xalloc free stdbool
sig2str | #include "sig2str.h" | sig2str.c | sig2str.m4 gl_FUNC_SIG2STR | intprops
sysexits | #include <sysexits.h> | sysexit_.h | sysexits.m4 gl_SYSEXITS | ---
visibility | --- | --- | visibility.m4 gl_VISIBILITY | ---

## Support for building libraries and executables

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
ldd | --- | --- | ldd.m4 gl_LDD AC_CONFIG_FILES([ldd.sh:build-aux/ldd.sh.in]) | ---
lib-ignore | --- | --- | lib-ignore.m4 gl_IGNORE_UNUSED_LIBRARIES | ---

## Support for building documentation

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
fdl | --- | --- | --- | ---
gendocs | --- | --- | --- | ---

## Unclassified modules - please update MODULES.html.sh

modules/ | lib/ | lib/ | m4/ |
--- | --- | --- | --- | ---
Module | Header | Implementation | Autoconf macro | Depends on
arcfour | #include "arcfour.h" | arcfour.c | arcfour.m4 gl_ARCFOUR | stdint
arctwo | #include "arctwo.h" | arctwo.c | arctwo.m4 gl_ARCTWO | stdint
arpa_inet | #include <arpa/inet.h> | --- | arpa_inet_h.m4 gl_HEADER_ARPA_INET | sys_socket
chdir-long | #include "chdir-long.h" | chdir-long.c | chdir-long.m4 gl_FUNC_CHDIR_LONG | openat mempcpy memrchr stdbool
crc | #include "crc.h" | crc.c | crc.m4 gl_CRC | stdint
csharpcomp-script | --- | --- | csharpcomp.m4 csharp.m4 gt_CSHARPCOMP AC_CONFIG_FILES([csharpcomp.sh:build-aux/csharpcomp.sh.in]) | ---
des | #include "des.h" | des.c | des.m4 gl_DES | stdint stdbool
gc | #include "gc.h" | gc-libgcrypt.c gc-gnulib.c | gc.m4 gl_GC | havelib restrict
gc-arcfour | #include "gc.h" | arcfour.h arcfour.c | gc-arcfour.m4 arcfour.m4 gl_GC_ARCFOUR | stdint gc
gc-arctwo | #include "gc.h" | arctwo.h arctwo.c | gc-arctwo.m4 arctwo.m4 gl_GC_ARCTWO | stdint gc
gc-des | #include "gc.h" | des.h des.c | gc-des.m4 des.m4 gl_GC_DES | stdint gc
gc-hmac-md5 | #include "gc.h" | md5.h md5.c hmac.h hmac-md5.c memxor.h memxor.c | gc-hmac-md5.m4 md5.m4 hmac-md5.m4 memxor.m4 gl_GC_HMAC_MD5 | stdint gc
gc-hmac-sha1 | #include "gc.h" | sha1.h sha1.c hmac.h hmac-sha1.c memxor.h memxor.c | gc-hmac-sha1.m4 sha1.m4 hmac-sha1.m4 memxor.m4 gl_GC_HMAC_SHA1 | stdint gc
gc-md2 | #include "gc.h" | --- | gc-md2.m4 gl_GC_MD2 | stdint gc minmax md2
gc-md4 | #include "gc.h" | md4.h md4.c | gc-md4.m4 md4.m4 gl_GC_MD4 | stdint gc
gc-md5 | #include "gc.h" | md5.h md5.c | gc-md5.m4 md5.m4 gl_GC_MD5 | stdint gc
gc-pbkdf2-sha1 | #include "gc.h" | gc-pbkdf2-sha1.c | gc-pbkdf2-sha1.m4 gl_GC_PBKDF2_SHA1 | gc gc-hmac-sha1
gc-random | #include "gc.h" | --- | gc-random.m4 gl_GC_RANDOM | gc
gc-rijndael | #include "gc.h" | rijndael-alg-fst.c rijndael-alg-fst.h rijndael-api-fst.c rijndael-api-fst.h | gc-rijndael.m4 rijndael.m4 gl_GC_RIJNDAEL | stdint gc
gc-sha1 | #include "gc.h" | sha1.h sha1.c | gc-sha1.m4 sha1.m4 gl_GC_SHA1 | stdint gc
gethrxtime | #include "xtime.h" | gethrxtime.c gethrxtime.h | gethrxtime.m4 clock_time.m4 longlong.m4 gl_GETHRXTIME | gettime extensions
havelib | --- | --- | lib-ld.m4 lib-link.m4 lib-prefix.m4 | ---
hmac-md5 | #include "hmac.h" | hmac-md5.c | hmac-md5.m4 gl_HMAC_MD5 | memxor md5
hmac-sha1 | #include "hmac.h" | hmac-sha1.c | hmac-sha1.m4 gl_HMAC_SHA1 | memxor sha1
inttypes | #include <inttypes.h> | inttypes.h | include_next.m4 absolute-header.m4 _inttypes_h.m4 gl_INTTYPES_H | ---
javacomp-script | --- | --- | javacomp.m4 gt_JAVACOMP AC_CONFIG_FILES([javacomp.sh:build-aux/javacomp.sh.in]) | ---
maintainer-makefile | --- | --- | --- | ---
md2 | #include "md2.h" | md2.c | md2.m4 gl_MD2 | minmax
md4 | #include "md4.h" | md4.c | md4.m4 gl_MD4 | stdint
memxor | #include "memxor.h" | memxor.c | memxor.m4 gl_MEMXOR | restrict
openat | #include "openat.h" | mkdirat.c openat.c openat-die.c openat-priv.h | openat.m4 gl_FUNC_OPENAT | save-cwd gettext-h dirname extensions intprops
read-file | #include "read-file.h" | read-file.c | read-file.m4 gl_FUNC_READ_FILE | ---
rijndael | #include "rijndael-alg-fst.h" #include "rijndael-api-fst.h" | rijndael-alg-fst.c rijndael-alg-fst.h rijndael-api-fst.c rijndael-api-fst.h | rijndael.m4 gl_RIJNDAEL | stdint
socklen | #include <sys/types.h> #include <sys/socket.h> | --- | socklen.m4 gl_TYPE_SOCKLEN_T | sys_socket
stat-macros | #include "stat-macros.h" | --- | stat-macros.m4 gl_STAT_MACROS | ---
sys_select | #include <sys/select.h> | --- | sys_select_h.m4 gl_HEADER_SYS_SELECT | sys_socket
sys_socket | #include <sys/types.h> #include <sys/socket.h> | socket_.h | sys_socket_h.m4 sockpfaf.m4 gl_HEADER_SYS_SOCKET | ---

## Lone files - please create new modules containing them

    lib/chdir-safer.c
    lib/chdir-safer.h
    lib/progreloc.c
    m4/afs.m4
    m4/chdir-safer.m4
    m4/gnulib-tool.m4
    m4/host-os.m4
    m4/jm-winsz1.m4
    m4/jm-winsz2.m4
    m4/link-follow.m4
    m4/onceonly.m4
    m4/onceonly_2_57.m4
    m4/perl.m4
    m4/ptrdiff_max.m4
    m4/rmdir-errno.m4
    m4/st_dm_mode.m4
    m4/uint32_t.m4
    m4/uintptr_t.m4
    m4/unlink-busy.m4
    m4/uptime.m4
    m4/warning.m4

## Future developments

Ideally a module could consist of:

- A header file: lib/module.h
- One or more implementation files: lib/module.c et al.
- One or more autoconf macro files: m4/module.m4 et al.
- A configure.ac fragment, Makefile.am fragment, dependency list: modules/module
- A testsuite: source files in tests/ and metainformation (a configure.ac fragment, Makefile.am fragment, dependency list) in modules/module-tests
- Some documentation
- A POT file and some PO files

Generated from `MODULES.html.sh` on 22 July 2006.