* doc/Makefile (undocumented-modules.texi): New rule.
(%.info, %.html, %.dvi, %.pdf): Depend on undocumented-modules.texi.
(mostlyclean): Remove also *.m and *.tmp.
(force): New rule.
* doc/*.texi: Add module index entries.
* doc/*/*.texi: Likewise.
+2024-10-27 Bruno Haible <bruno@clisp.org>
+
+ doc: Add a module index.
+ * doc/Makefile (undocumented-modules.texi): New rule.
+ (%.info, %.html, %.dvi, %.pdf): Depend on undocumented-modules.texi.
+ (mostlyclean): Remove also *.m and *.tmp.
+ (force): New rule.
+ * doc/*.texi: Add module index entries.
+ * doc/*/*.texi: Likewise.
+
2024-10-26 Paul Eggert <eggert@cs.ucla.edu>
posix_memalign: port better to OpenBSD 6.2+ cross
+documented-modules.tmp
+all-modules.tmp
+undocumented-modules.texi
gnulib.aux
gnulib.cn
gnulib.cp
gnulib.fn
gnulib.ky
gnulib.log
+gnulib.m
gnulib.pg
gnulib.toc
gnulib.tp
# Needed so that tex finds a recent enough texinfo.tex.
tex_opts = -I ../build-aux
-%.info: %.texi
+undocumented-modules.texi: force
+ grep -h '^@mindex ' `find . -name '*.texi'` | sed -e 's/@mindex //' | LC_ALL=C sort -u > documented-modules.tmp
+ (cd .. && ./gnulib-tool --list) | LC_ALL=C sort -u > all-modules.tmp
+ LC_ALL=C join -v1 all-modules.tmp documented-modules.tmp | sed -e 's/^/@umindex /' > undocumented-modules.texi
+ rm -f documented-modules.tmp all-modules.tmp
+
+%.info: %.texi undocumented-modules.texi
$(MAKEINFO) $(manual_opts) $<
-%.html: %.texi
+%.html: %.texi undocumented-modules.texi
$(TEXI2HTML) -o $@ $<
-%.dvi: %.texi
+%.dvi: %.texi undocumented-modules.texi
texi2dvi $(tex_opts) $< || { if texi2dvi $(tex_opts) $< 2>/dev/null | grep 'TeX capacity exceeded, sorry \[save size=' > /dev/null; then echo '*** You must increase the save_size in your texmf.cnf file, often located under /etc/texmf/.'; fi; exit 1; }
-%.pdf: %.texi
+%.pdf: %.texi undocumented-modules.texi
texi2pdf $(tex_opts) $< || { if texi2pdf $(tex_opts) $< 2>/dev/null | grep 'TeX capacity exceeded, sorry \[save size=' > /dev/null; then echo '*** You must increase the save_size in your texmf.cnf file, often located under /etc/texmf/.'; fi; exit 1; }
all: info html dvi
standards.info standards.html standards.dvi: standards.texi make-stds.texi fdl.texi
mostlyclean:
- rm -f *.aux *.cn *.cp *.cps *.fn *.ky *.log *.pg *.toc *.tp *.vr *.vrs
+ rm -f *.aux *.cn *.cp *.cps *.fn *.ky *.log *.m *.pg *.toc *.tmp *.tp *.vr *.vrs
rm -f updated-stamp
clean: mostlyclean
rm -f *.info *.html *.dvi *.ps *.pdf
+
+force:
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex alloca-opt
The @code{alloca-opt} module provides for a function @code{alloca} which allocates
memory on the stack, where the system allows it. A memory block allocated with
@code{alloca} exists only until the function that calls @code{alloca} returns
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex alloca
The @code{alloca} module provides for a function @code{alloca} which allocates
memory on the stack, where the system allows it. A memory block allocated with
@code{alloca} exists only until the function that calls @code{alloca} returns
#endif
@end smallexample
+@mindex alloca-opt
An alternative to this module is the @samp{alloca-opt} module.
@node Recognizing Option Arguments
@section Recognizing Option Arguments
+@mindex argmatch
The module @samp{argmatch} provides a simple textual user interface to a
finite choice. It is for example well suited to recognize arguments of
options or values of environment variables that accept a fixed set of valid
@node Bitsets
@section Bitsets
+@mindex bitset
The module @samp{bitset} provides a common interface to several
implementations of bitsets. It also provides routines for vectors of bitsets.
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex c-ctype
The @code{c-ctype} module contains functions operating on single-byte
characters, like the functions in @code{<ctype.h>}, that operate as if the
locale encoding was ASCII@. (The "C" locale on many systems has the locale
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex c-strcase
The @code{c-strcase} module contains case-insensitive string comparison
functions operating on single-byte character strings, like the functions in
@code{<strings.h>}, that operate as if the locale encoding was ASCII.
upper case or lower case.
Note: The functions @code{strcasecmp}, @code{strncasecmp} from
-@code{<strings.h>} support only unibyte locales; for multibyte locales,
+@code{<strings.h>} support only unibyte locales;
+@mindex mbscasecmp
+@mindex mbsncasecmp
+@mindex mbspcasecmp
+for multibyte locales,
you need the functions @code{mbscasecmp}, @code{mbsncasecmp},
@code{mbspcasecmp}.
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex c-strcaseeq
The @code{c-strcaseeq} module contains an optimized case-insensitive
string comparison function operating on single-byte character strings, that
operate as if the locale encoding was ASCII.
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex c-strcasestr
The @code{c-strcasestr} module contains a case-insensitive string search
function operating on single-byte character strings, that operate as if the
locale encoding was ASCII.
upper case or lower case.
Note: The function @code{strcasestr} from @code{<string.h>} supports only
-unibyte locales; for multibyte locales, you need the function
-@code{mbscasestr}.
+unibyte locales;
+@mindex mbscasestr
+for multibyte locales, you need the function @code{mbscasestr}.
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex c-strstr
The @code{c-strstr} module contains a substring search function operating
on single-byte character strings, that operate as if the locale encoding
was ASCII.
@end smallexample
Note: The function @code{strstr} from @code{<string.h>} supports only
-unibyte locales; for multibyte locales, you need the function
-@code{mbsstr}.
+unibyte locales;
+@mindex mbsstr
+for multibyte locales, you need the function @code{mbsstr}.
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex c-strtod
The @code{c-strtod} module contains a string to number (@samp{double})
conversion function operating on single-byte character strings, that operates
as if the locale encoding was ASCII.
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex c-strtold
The @code{c-strtold} module contains a string to number (@samp{long double})
conversion function operating on single-byte character strings, that operates
as if the locale encoding was ASCII.
@node Library version handling
@section Library version handling
+@mindex check-version
The module @samp{check-version} can be useful when your gnulib
application is a system library. You will typically wrap the call to
the @code{check_version} function through a library API, your library
@node configmake
@section configmake
-@findex configmake @r{module}
+@mindex configmake
@cindex @file{configmake.h}, module for updating
The @code{configmake} module builds a C include file named
@node Ordinary containers
@subsection Ordinary container data types
+@mindex list
+@mindex set
+@mindex oset
+@mindex map
+@mindex omap
+
@multitable @columnfractions .15 .5 .1 .1 .15
@headitem Data type
@tab Details
For C++, Gnulib provides a C++ template class for each of these container data types.
+@mindex list-c++
+@mindex set-c++
+@mindex oset-c++
+@mindex map-c++
+@mindex omap-c++
+
@multitable @columnfractions .30 .20 .25 .25
@headitem Data type
@tab C++ class
@node Specialized containers
@subsection Specialized container data types
+@mindex hamt
The @code{hamt} module implements the hash array mapped trie (HAMT) data
structure. This is a data structure that contains (key, value) pairs.
Lookup of a (key, value) pair given the key is on average an @math{O(1)}
@cindex extern inline
@cindex inline
+@mindex extern-inline
The @code{extern-inline} module supports the use of C99-style
@code{extern inline} functions so that the code still runs on
@node func
@section func
+@mindex func
The @code{func} module makes sure that you can use the predefined
identifier @code{__func__} as defined by C99 in your code.
@node gcd
@section gcd: greatest common divisor
+@mindex gcd
@findex gcd
@c Copyright (C) 2006, 2009--2024 Free Software Foundation, Inc.
@cindex gitlog
@cindex changelog
+@mindex gitlog-to-changelog
Gnulib has a module @code{gitlog-to-changelog} to parse @code{git log}
output and generate @file{ChangeLog} files; see
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: execinfo
+@mindex execinfo
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: execinfo
+@mindex execinfo
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: execinfo
+@mindex execinfo
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/bswap_16.3.html,,man bswap_16}
Gnulib module: byteswap
+@mindex byteswap
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/bswap_32.3.html,,man bswap_32}
Gnulib module: byteswap
+@mindex byteswap
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/bswap_64.3.html,,man bswap_64}
Gnulib module: byteswap
+@mindex byteswap
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: canonicalize-lgpl
+@mindex canonicalize-lgpl
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: copy-file-range
+@mindex copy-file-range
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/endusershell.3.html,,man endusershell}
Gnulib module: getusershell
+@mindex getusershell
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: error
+@mindex error
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: error
+@mindex error
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: error
+@mindex error
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: error
+@mindex error
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/error_print_progname.3.html,,man error_print_progname}
Gnulib module: error
+@mindex error
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/euidaccess.3.html,,man euidaccess}
Gnulib module: euidaccess
+@mindex euidaccess
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/execvpe.3.html,,man execvpe}
Gnulib module: execvpe
+@mindex execvpe
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: explicit_bzero
+@mindex explicit_bzero
The @code{explicit_bzero} function is an approximation to what is
needed, and does not suffice in general to erase information.
@end itemize
Gnulib module: fenv-exceptions-trapping
+@mindex fenv-exceptions-trapping
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: fenv-exceptions-trapping
+@mindex fenv-exceptions-trapping
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: fenv-exceptions-trapping
+@mindex fenv-exceptions-trapping
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/flock.2.html,,man flock}
Gnulib module: flock
+@mindex flock
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: forkpty
+@mindex forkpty
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/fts_children.3.html,,man fts_children}
Gnulib module: fts
+@mindex fts
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/fts_close.3.html,,man fts_close}
Gnulib module: fts
+@mindex fts
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/fts_open.3.html,,man fts_open}
Gnulib module: fts
+@mindex fts
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/fts_read.3.html,,man fts_read}
Gnulib module: fts
+@mindex fts
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/fts_set.3.html,,man fts_set}
Gnulib module: fts
+@mindex fts
Portability problems fixed by Gnulib:
@itemize
: futimens(fd, times)
@end example
-@noindent or the gnulib module @code{fdutimensat}, instead.
+@noindent or
+@mindex fdutimensat
+the gnulib module @code{fdutimensat}, instead.
@end itemize
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.7.1, mingw, MSVC 14, Android 5.1.
@end itemize
+@mindex nproc
Gnulib provides the module @code{nproc} that performs a similar
function but is portable to more systems.
@end itemize
Gnulib module: getdomainname
+@mindex getdomainname
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/getdtablesize.3.html,,man getdtablesize}
Gnulib module: getdtablesize
+@mindex getdtablesize
Portability problems fixed by Gnulib:
@itemize
@macro getfileconDesc{fn}
Gnulib module: selinux-h
+@mindex selinux-h
Portability problems fixed by Gnulib:
@itemize
Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.0, Cygwin 1.7.9, mingw, MSVC 14.
@end itemize
+@mindex getugroups
The Gnulib module @code{getugroups} provides a similar API.
@end itemize
Gnulib module: getloadavg
+@mindex getloadavg
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: getopt-gnu
+@mindex getopt-gnu
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: getopt-gnu
+@mindex getopt-gnu
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: getpagesize
+@mindex getpagesize
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: getpass or getpass-gnu
+@mindex getpass
+@mindex getpass-gnu
Portability problems fixed by either Gnulib module @code{getpass} or @code{getpass-gnu}:
@itemize
@end itemize
Gnulib module: getrandom
+@mindex getrandom
Portability problems fixed by Gnulib:
@itemize
randomness goes bad: virtual machine vulnerabilities and hedging
deployed cryptography}. NDSS 2010.}
+@mindex getentropy
+@mindex crypto/gc-random
Related modules include @code{getentropy}, which has a simpler but
more-limited API, and @code{crypto/gc-random}, which is likely a
better match for code already using the other @code{crypto} APIs.
@end itemize
Gnulib module: getumask
+@mindex getumask
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/getusershell.3.html,,man getusershell}
Gnulib module: getusershell
+@mindex getusershell
Portability problems fixed by Gnulib:
@itemize
glibc 2.38 on 32-bit platforms like x86 and ARM where @code{time_t}
was historically 32 bits.
@item
+@mindex year2038
+@mindex year2038-recommended
On some platforms, this function misbehaves if the @code{year2038} or
@code{year2038-recommended} modules are used and the program is
configured without the @option{--disable-year2038} option.
+@mindex readutmp
The @code{readutmp} module works around this problem:
glibc 2.38 on 32-bit platforms like x86 and ARM where @code{time_t}
was historically 32 bits.
glibc 2.38 on 32-bit platforms like x86 and ARM where @code{time_t}
was historically 32 bits.
@item
+@mindex year2038
+@mindex year2038-recommended
On some platforms, this function misbehaves if the @code{year2038} or
@code{year2038-recommended} modules are used and the program is
configured without the @option{--disable-year2038} option.
+@mindex readutmp
The @code{readutmp} module works around this problem:
glibc 2.38 on 32-bit platforms like x86 and ARM where @code{time_t}
was historically 32 bits.
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/group_member.3.html,,man group_member}
Gnulib module: group-member
+@mindex group-member
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: hasmntopt
+@mindex hasmntopt
Portability problems fixed by Gnulib:
@itemize
@item
This function is unsafe to call between @code{fork} and @code{exec} if
the parent process is multi-threaded. Instead, use @code{getgroups} or
-@code{getgrouplist} (or use the gnulib module @code{mgetgroups})
+@code{getgrouplist}
+@mindex mgetgroups
+(or use the gnulib module @code{mgetgroups})
before forking, and @code{setgroups} in the child.
@item
This function is missing on some platforms:
@end itemize
Gnulib module: random_r
+@mindex random_r
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: isnanf
+@mindex isnanf
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: isnanl
+@mindex isnanl
Portability problems fixed by Gnulib:
@itemize
@findex lchmod
Gnulib module: lchmod
+@mindex lchmod
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: login_tty
+@mindex login_tty
Portability problems fixed by Gnulib:
@itemize
This function is missing on some platforms:
OpenBSD 7.5, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, mingw, MSVC 14, Android 7.1.
@item
-This function cannot set full timestamp resolution. Use
-@code{utimensat(AT_FDCWD,file,times,AT_SYMLINK_NOFOLLOW)}, or the
+This function cannot set full timestamp resolution.
+@mindex utimens
+Use @code{utimensat(AT_FDCWD,file,times,AT_SYMLINK_NOFOLLOW)}, or the
gnulib module @code{utimens}, instead.
@item
The mere act of using @code{lstat} modifies the access time of
@end itemize
Gnulib module: memalign
+@mindex memalign
Portability problems fixed by Gnulib:
@itemize
macOS 14, FreeBSD 12.0, NetBSD 10.0, OpenBSD 7.5, Minix 3.1.8, AIX 5.1, HP-UX 11.00, mingw, MSVC 14.
@end itemize
+@mindex aligned-malloc
The Gnulib module @code{aligned-malloc} provides functions for
allocating and freeing blocks of suitably aligned memory.
@end itemize
Gnulib module: mempcpy
+@mindex mempcpy
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: memrchr
+@mindex memrchr
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/mkostemps.3.html,,man mkostemps}
Gnulib module: mkostemps
+@mindex mkostemps
Portability problems fixed by Gnulib:
@itemize
@itemize
@end itemize
+@mindex clean-temp
The gnulib module @code{clean-temp} can create temporary files that will not
be left behind after signals such as SIGINT.
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/mkstemps.3.html,,man mkstemps}
Gnulib module: mkstemps
+@mindex mkstemps
Portability problems fixed by Gnulib:
@itemize
@itemize
@end itemize
+@mindex clean-temp
The gnulib module @code{clean-temp} can create temporary files that will not
be left behind after signals such as SIGINT.
@end ifnotinfo
Gnulib module: obstack-printf or obstack-printf-posix or obstack-printf-gnu
+@mindex obstack-printf
+@mindex obstack-printf-posix
+@mindex obstack-printf-gnu
Portability problems fixed by either Gnulib module
@code{obstack-printf} or @code{obstack-printf-posix} or @code{obstack-printf-gnu}:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{obstack-printf-posix} or @code{obstack-printf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
@end ifnotinfo
Gnulib module: obstack-printf or obstack-printf-posix or obstack-printf-gnu
+@mindex obstack-printf
+@mindex obstack-printf-posix
+@mindex obstack-printf-gnu
Portability problems fixed by either Gnulib module
@code{obstack-printf} or @code{obstack-printf-posix} or @code{obstack-printf-gnu}:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{obstack-printf-posix} or @code{obstack-printf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
@end itemize
Gnulib module: openpty
+@mindex openpty
Portability problems fixed by Gnulib:
@itemize
glibc 2.28, macOS 10.14, FreeBSD 13.0, NetBSD 10.0, OpenBSD 7.5, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.0, Cygwin 3.4.x, mingw, MSVC 14, Android API level 33.
@end itemize
+@mindex posix_spawn_file_actions_addchdir
Note: Gnulib has a module @code{posix_spawn_file_actions_addchdir} that
provides equivalent functionality, just without the suffix @code{_np}.
glibc 2.28, macOS 10.14, FreeBSD 13.0, NetBSD 10.0, OpenBSD 7.5, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.4.x, mingw, MSVC 14, Android API level 33.
@end itemize
+@mindex posix_spawn_file_actions_addfchdir
Note: Gnulib has a module @code{posix_spawn_file_actions_addfchdir} that
provides equivalent functionality, just without the suffix @code{_np}.
@end itemize
Gnulib module: random_r
+@mindex random_r
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: rawmemchr
+@mindex rawmemchr
Portability problems fixed by Gnulib:
@itemize
Cygwin 3.4.6.
@end itemize
+@mindex renameatu
The @code{renameatu} module addresses some of these portability issues.
@end itemize
Gnulib module: rpmatch
+@mindex rpmatch
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: sethostname
+@mindex sethostname
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: random_r
+@mindex random_r
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/setusershell.3.html,,man setusershell}
Gnulib module: getusershell
+@mindex getusershell
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: sigabbrev_np
+@mindex sigabbrev_np
Portability problems fixed by Gnulib:
@itemize
@itemize
@end itemize
+@mindex sig2str
Note: Gnulib has a module @code{sig2str} that contains an equivalent function
and also one that does the opposite conversion, from an abbreviated signal name
to a signal number.
@end ifnotinfo
Gnulib module: sigdescr_np
+@mindex sigdescr_np
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: random_r
+@mindex random_r
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: strcasestr or strcasestr-simple
+@mindex strcasestr
+@mindex strcasestr-simple
Portability problems fixed by either Gnulib module @code{strcasestr-simple}
or @code{strcasestr}:
@end itemize
Gnulib module: strchrnul
+@mindex strchrnul
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: strerrorname_np
+@mindex strerrorname_np
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: strsep
+@mindex strsep
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: strverscmp
+@mindex strverscmp
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: wmempcpy
+@mindex wmempcpy
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: alloca
+@mindex alloca
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argp
+@mindex argp
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: argz
+@mindex argz
Portability problems fixed by Gnulib:
@itemize
@code{bswap_64}.
Gnulib module: byteswap
+@mindex byteswap
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: error-h
+@mindex error-h
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: execinfo
+@mindex execinfo
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: fts
+@mindex fts
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: getopt-gnu
+@mindex getopt-gnu
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: malloc-h
+@mindex malloc-h
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: mntent
+@mindex mntent
Portability problems fixed by Gnulib:
@itemize
AIX 5.1, HP-UX 11, Cygwin, Android 9.0.
@end itemize
+@mindex mountlist
Gnulib module @code{mountlist} provides a higher-level abstraction.
@end itemize
Gnulib module: obstack
+@mindex obstack
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: pty
+@mindex pty
Portability problems fixed by Gnulib:
@itemize
Declares the function @code{flock}.
Gnulib module: sys_file
+@mindex sys_file
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: sys_ioctl
+@mindex sys_ioctl
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: sys_random
+@mindex sys_random
Portability problems fixed by Gnulib:
@itemize
Defines the @code{EX_*} macros, including @code{EX_OK}.
Gnulib module: sysexits
+@mindex sysexits
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: utmp
+@mindex utmp
Portability problems fixed by Gnulib:
@itemize
glibc 2.38 on 32-bit platforms like x86 and ARM where @code{time_t}
was historically 32 bits.
@item
+@mindex year2038
+@mindex year2038-recommended
On some platforms, this header misbehaves if the @code{year2038} or
@code{year2038-recommended} modules are used and the program is
configured without the @option{--disable-year2038} option.
+@mindex readutmp
The @code{readutmp} module works around this problem:
glibc 2.38 on 32-bit platforms like x86 and ARM where @code{time_t}
was historically 32 bits.
@subsection Interfaces to external libraries
+@mindex iconv
Examples are the @samp{iconv} module, which interfaces to the
@code{iconv} facility, regardless whether it is contained in libc or in
-an external @code{libiconv}. Or the @samp{readline} module, which
-interfaces to the GNU readline library.
+an external @code{libiconv}.
+@mindex readline
+Or the @samp{readline} module, which interfaces to the GNU readline library.
@subsection Build / maintenance infrastructure
+@mindex maintainer-makefile
An example is the @samp{maintainer-makefile} module, which provides extra
Makefile tags for maintaining a package.
hosts conforming to recent C and POSIX standards. Hence Gnulib code
should avoid using constructs that these newer standards no longer
require, without first testing for the presence of these constructs.
+@mindex vararrays
For example, because C11 made variable length arrays optional, Gnulib
code should avoid them unless it first uses the @code{vararrays}
module to check whether they are supported.
@code{long long int}.
@item
-@code{<stdbool.h>}, although Gnulib code no longer uses
+@code{<stdbool.h>},
+@mindex stdbool
+although Gnulib code no longer uses
it directly, preferring plain @code{bool} via the
@code{stdbool} module instead.
@xref{stdbool.h}.
@item
-@code{<stdint.h>}, assuming the @code{stdint} module is used.
+@code{<stdint.h>},
+@mindex stdint
+assuming the @code{stdint} module is used.
@xref{stdint.h}.
@item
@code{static inline} functions.
@item
+@mindex func
@code{__func__}, assuming the @code{func} module is used. @xref{func}.
@item
uses Gnulib should avoid using @code{restrict} as an identifier.
@item
+@mindex flexmember
Flexible array members (however, see the @code{flexmember} module).
@end itemize
@itemize
@item
+@mindex vla
Variable length arrays (VLAs) or variably modified types,
without checking whether @code{__STDC_NO_VLA__} is defined.
See the @code{vararrays} and @code{vla} modules.
@enumerate
@item
+@mindex posixcheck
Add the Gnulib module @samp{posixcheck} to the Gnulib imports of your package,
as described earlier in this chapter.
at the time the Gnulib snapshot was taken.
@item
+@mindex gettext
After running @code{gettextize}, invoke @code{gnulib-tool} and import
the @code{gettext} module. Also, copy the latest version of gnulib's
@file{build-aux/po/Makefile.in.in} to your @file{po/} directory (this
of gettext will install the older infrastructure that you requested).
@item
+@mindex gettext-h
Invoke @code{gnulib-tool}, and import the @code{gettext-h} module.
@end enumerate
@end ignore
@set txicodequoteundirected
@set txicodequotebacktick
+@c Indices:
+@c cp = concept @cindex
+@c fn = function @findex
+@c ky = keystroke @kindex
+@c m = module @mindex
+@c pg = program @pindex
+@c tp = type @tindex
+@c um = undocumented module @umindex
+@c vr = variable @vindex
+@defcodeindex m
+@defcodeindex um
@c Define a new index for the magic constants in regex.texi.
@defcodeindex cn
+@c Define which indices are merged together.
@syncodeindex fn cp
@syncodeindex ky cp
@syncodeindex pg cp
* Release Management Files:: Non-modules files for preparing releases.
* GNU Free Documentation License:: Copying and sharing this manual.
* Gnulib history::
+* Module Index::
+* Undocumented Module Index::
* Index::
@end menu
@section @code{alignof} and @code{alignas}
Gnulib module: alignasof
+@mindex alignasof
The @code{alignasof} module arranges for @code{alignas} and @code{alignof}
to be more like standard C@.
@section @code{bool}
Gnulib module: stdbool
+@mindex stdbool
Portability problems fixed by Gnulib:
@itemize
@section @code{nullptr}
Gnulib module: nullptr
+@mindex nullptr
@cindex null pointer
The @code{nullptr} module arranges for @code{nullptr} to act
@section @code{static_assert}
Gnulib module: assert-h
+@mindex assert-h
The @code{assert-h} module arranges for both @code{static_assert} and
@code{<assert.h>} to be like standard C@. @xref{assert.h}.
@section Tools for uploading release tarballs
@table @code
+@mindex gnupload
@item build-aux/gnupload
This program is a user-friendly way to upload a release tarball to one of
the GNU servers (@code{ftp.gnu.org} or @code{alpha.gnu.org}). It
@include gnulib-history.texi
+@node Module Index
+@unnumbered Module Index
+
+@printindex m
+
+@node Undocumented Module Index
+@unnumbered Undocumented Module Index
+
+@include undocumented-modules.texi
+
+These are the modules that are not explicitly documented in this manual.
+Please look at the respective module description.
+(Ideally, this list should be as small as possible.)
+
+@printindex um
+
@node Index
-@unnumbered Index
+@unnumbered General Index
@printindex cp
@unnumberedsubsec Locating Libraries
+@mindex havelib
The following macros, defined in the Gnulib module @code{havelib}, search for
the location of certain C, C++, or Fortran library archive files and make the
found location available to the compilation process and to further Autoconf
@cindex integer properties
+@mindex intprops
The @code{intprops} module consists of an include file @code{<intprops.h>}
that defines several macros useful for testing properties of integer
types.
restrictions.
@end table
+@mindex stdckdint
If your code includes @code{<intprops.h>} only for these @code{_WRAPV}
macros, you may prefer to use Gnulib's @code{stdckdint} module
instead, as it supports similar macros that were standardized in C23
@cindex DEF files
@cindex LD DEF files
+@mindex lib-msvc-compat
The @code{lib-msvc-compat} module detects whether the linker supports
@code{--output-def} when building a library. That parameter is used
to generate a DEF file for a shared library (DLL). DEF files are
@node LD Version Scripts
@section LD Version Scripts
+@mindex lib-symbol-versions
The @code{lib-symbol-versions} module can be used to add shared
library versioning support. Currently, only GNU LD and the Solaris
linker supports this.
@c Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
+@mindex lib-symbol-visibility
The @code{lib-symbol-visibility} module allows precise control of the
symbols exported by a shared library. This is useful because
fulfills a legal obligation; see
@url{https://www.gnu.org/licenses/gpl-faq.html#WhyMustIInclude}.
+@mindex gpl-3.0
+@mindex gpl-2.0
+@mindex lgpl-3.0
+@mindex lgpl-2.1
+@mindex agpl-3.0
To make use of the code license in your documentation, you may request
one of the modules @code{gpl-3.0}, @code{gpl-2.0}, @code{lgpl-3.0},
@code{lgpl-2.1}, @code{agpl-3.0}, through a @code{gnulib-tool} invocation.
@node manywarnings
@section manywarnings
+@mindex manywarnings
The @code{manywarnings} module enables many GCC warnings for your
package. Here is an example use:
go.
@end itemize
+@mindex openmp
Note: Programs that achieve multithreading through OpenMP (cf. the gnulib
module @samp{openmp}) don't create and manage their threads themselves.
Nevertheless, they need to use mutexes/locks in many cases.
To make use of POSIX multithreading, even on platforms that don't support it
natively (most prominently, native Windows), use the following Gnulib modules:
+@mindex pthread-thread
+@mindex pthread-mutex
+@mindex pthread-rwlock
+@mindex pthread-once
+@mindex pthread-cond
+@mindex pthread-tss
+@mindex sched_yield
+@mindex pthread-spin
@multitable @columnfractions .75 .25
@headitem Purpose @tab Module
@item For thread creation and management:@tie{} @tab @code{pthread-thread}
@item For spin locks:@tie{} @tab @code{pthread-spin}
@end multitable
+@mindex pthread
There is also a convenience module named @code{pthread} which depends on all
of these (except @code{sched_yield}); so you don't need to enumerate these
modules one by one.
To make use of ISO C multithreading, even on platforms that don't support it
or have severe bugs, use the following Gnulib modules:
+@mindex thrd
+@mindex mtx
+@mindex cnd
+@mindex tss
@multitable @columnfractions .85 .15
@headitem Purpose @tab Module
@item For thread creation and management:@tie{} @tab @code{thrd}
@item For thread-local storage:@tie{} @tab @code{tss}
@end multitable
+@mindex threads
There is also a convenience module named @code{threads} which depends on all
of these; so you don't need to enumerate these modules one by one.
@end itemize
To make use of Gnulib multithreading, use the following Gnulib modules:
+@mindex thread
+@mindex lock
+@mindex once
+@mindex cond
+@mindex tls
+@mindex yield
@multitable @columnfractions .85 .15
@headitem Purpose @tab Module
@item For thread creation and management:@tie{} @tab @code{thread}
threads and must therefore be single-threaded. This optimization applies
to all the Gnulib multithreading API (locks, thread-local storage, and more).
@item
+@mindex thread-optim
The @code{thread-optim} module, on glibc @geq{} 2.32 systems, allows your code
to skip locking between threads (regardless which of the three multithreading
APIs you use). You need extra code for this: include the
if (mt) gl_lock_unlock (some_lock);
@end smallexample
@item
+@mindex unlocked-io
You may use the @code{unlocked-io} module if you want the @code{FILE} stream
functions @code{getc}, @code{putc}, etc.@: to use unlocked I/O if available,
throughout the package. Unlocked I/O can improve performance, sometimes
@end itemize
This macro optimizes the functions @code{mbrtowc}, @code{mbrtoc32}, and
@code{wcwidth}.
+@mindex wchar-single
You can get this macro defined by including the Gnulib module
@code{wchar-single}.
@item
the @code{_Noreturn} keyword is obsolescent in C23.
@item
+@mindex noreturn
The @samp{noreturn} module. It provides a way to put this declaration
at function declarations, at function definitions, and in function
pointer types. The identifiers to use are:
@code{noreturn} provides for better data-flow analysis and thus for
better warnings.
+@mindex stdnoreturn
There is also an obsolete @code{stdnoreturn} module, but its use is no
longer recommended.
strategy chosen improves code readability and robustness.
@cindex Aborting execution
+@mindex xalloc-die
For most applications, aborting the application with an error message
when the out of memory situation occurs is the best that can be wished
for. This is how the library behaves by default (using
POSIX.1-2004 specification: @url{https://pubs.opengroup.org/onlinepubs/009695399/functions/bcopy.html}
Gnulib module: bcopy
+@mindex bcopy
Portability problems fixed by Gnulib:
@itemize
FreeBSD 5.2.1, NetBSD 3.0, Minix 3.1.8, mingw, MSVC 14, Android 4.1.
@item
This function is removed in POSIX.1-2024.
+@mindex fts
Use the Gnulib module @code{fts} instead.
@end itemize
POSIX.1-2017 specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html}
Gnulib module: gettimeofday
+@mindex gettimeofday
Portability problems fixed by Gnulib:
@itemize
is not @code{NULL}.
@item
This function is removed in POSIX.1-2024.
+@mindex gettime
+@mindex timespec_get
Use the Gnulib module @code{gettime} or @code{timespec_get} instead.
(POSIX recommends to use the function @code{clock_gettime}, but there is
no corresponding Gnulib module for it yet.)
@end itemize
Gnulib module: ioctl
+@mindex ioctl
Portability problems fixed by Gnulib:
@itemize
POSIX.1-2017 specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/isascii.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isascii
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item mb_isascii
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@end table
POSIX.1-2017 specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/toascii.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
POSIX.1-2004 specification: @url{https://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html}
Gnulib module: usleep
+@mindex usleep
Portability problems fixed by Gnulib:
@itemize
POSIX.1-2017 specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/utime.html}
Gnulib module: utime
+@mindex utime
Portability problems fixed by Gnulib:
@itemize
On some platforms, this function mis-handles a trailing slash:
Solaris 9.
@item
-This function cannot set full timestamp resolution. Use
-@code{utimensat(AT_FDCWD,file,times,0)}, or the gnulib module @code{utimens},
+This function cannot set full timestamp resolution.
+@mindex utimens
+Use @code{utimensat(AT_FDCWD,file,times,0)},
+or the gnulib module @code{utimens},
instead.
@item
This function is removed in POSIX.1-2024.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/_Exit.html}
Gnulib module: _Exit
+@mindex _Exit
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/_exit.html}
Gnulib module: unistd
+@mindex unistd
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/accept.html}
Gnulib module: accept
+@mindex accept
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/accept4.2.html,,man accept4}
Gnulib module: accept4
+@mindex accept4
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/access.html}
Gnulib module: access
+@mindex access
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/acos.html}
Gnulib module: acos
+@mindex acos
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/acosf.html}
Gnulib module: acosf
+@mindex acosf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/acosl.html}
Gnulib module: acosl
+@mindex acosl
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/aligned_alloc.3.html,,man aligned_alloc}
Gnulib module: aligned_alloc
+@mindex aligned_alloc
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
+@mindex alignalloc
The Gnulib module @code{alignalloc} provides a portable function
@code{alignalloc} that is a near-substitute for glibc
@code{aligned_alloc}, except that the result must be freed
with @code{alignfree} rather than plain @code{free}.
@item
+@mindex aligned-malloc
The Gnulib module @code{aligned-malloc} provides functions for
allocating and freeing blocks of suitably aligned memory.
@item
+@mindex pagealign_alloc
The Gnulib module @code{pagealign_alloc} provides a similar API for
allocating and freeing blocks of memory aligned on a system page boundary.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/alphasort.html}
Gnulib module: alphasort
+@mindex alphasort
Portability problems fixed by Gnulib:
@itemize
POSIX.1-2017 specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/asctime_r.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/asin.html}
Gnulib module: asin
+@mindex asin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/asinf.html}
Gnulib module: asinf
+@mindex asinf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/asinl.html}
Gnulib module: asinl
+@mindex asinl
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu
+@mindex vasprintf
+@mindex vasprintf-posix
+@mindex vasprintf-gnu
Portability problems fixed by either Gnulib module @code{vasprintf} or @code{vasprintf-posix} or @code{vasprintf-gnu}:
@itemize
@itemize
@end itemize
+@mindex assert
Extension: Gnulib offers a module @samp{assert} that allows the installer to
disable assertions through a @samp{configure} option: @samp{--disable-assert}.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/atan.html}
Gnulib module: atan
+@mindex atan
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/atan2.html}
Gnulib module: atan2
+@mindex atan2
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/atan2f.html}
Gnulib module: atan2f
+@mindex atan2f
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/atanf.html}
Gnulib module: atanf
+@mindex atanf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/atanl.html}
Gnulib module: atanl
+@mindex atanl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/atexit.html}
Gnulib module: atexit
+@mindex atexit
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/atoll.html}
Gnulib module: atoll
+@mindex atoll
Portability problems fixed by Gnulib:
@itemize
names in Windows syntax.
@end itemize
+@mindex basename-lgpl
The Gnulib module @code{basename-lgpl} provides similar API, with a function
@code{last_component}, that also works with Windows file names.
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/be16toh.3.html,,man be16toh}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/be32toh.3.html,,man be32toh}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/be64toh.3.html,,man be64toh}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/bind.html}
Gnulib module: bind
+@mindex bind
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/btowc.html}
Gnulib module: btowc
+@mindex btowc
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex btoc32
However, the Gnulib function @code{btoc32}, provided by Gnulib module
@code{btoc32}, operates on 32-bit wide characters and therefore does not have
this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/c32rtomb.html}
Gnulib module: c32rtomb
+@mindex c32rtomb
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: call_once
+@mindex call_once
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/calloc.html}
Gnulib module: calloc-posix
+@mindex calloc-posix
Portability problems fixed by Gnulib:
@itemize
going over the limit.
@end itemize
+@mindex calloc-gnu
Extension: Gnulib provides a module @samp{calloc-gnu} that substitutes a
@code{calloc} implementation that behaves more like the glibc implementation.
It fixes this portability problem:
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/cbrt.html}
Gnulib module: cbrt
+@mindex cbrt
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/cbrtf.html}
Gnulib module: cbrtf
+@mindex cbrtf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/cbrtl.html}
Gnulib module: cbrtl or cbrtl-ieee
+@mindex cbrtl
+@mindex cbrtl-ieee
Portability problems fixed by either Gnulib module @code{cbrtl} or @code{cbrtl-ieee}
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ceil.html}
Gnulib module: ceil or ceil-ieee
+@mindex ceil
+@mindex ceil-ieee
Portability problems fixed by either Gnulib module @code{ceil} or @code{ceil-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ceilf.html}
Gnulib module: ceilf or ceilf-ieee
+@mindex ceilf
+@mindex ceilf-ieee
Portability problems fixed by either Gnulib module @code{ceilf} or @code{ceilf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ceill.html}
Gnulib module: ceill or ceill-ieee
+@mindex ceill
+@mindex ceill-ieee
Portability problems fixed by either Gnulib module @code{ceill} or @code{ceill-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/chdir.html}
Gnulib module: chdir
+@mindex chdir
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/chmod.html}
Gnulib module: chmod
+@mindex chmod
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/chown.html}
Gnulib module: chown
+@mindex chown
Portability problems fixed by Gnulib:
@itemize
though the clock resolution may be greater.
@end itemize
+@mindex gettime-res
The Gnulib module @code{gettime-res} is a partial substitute; it implements
the @code{CLOCK_REALTIME} functionality of @code{clock_getres},
and fixes the too-high resolution bug of platforms like AIX 7.2.
mingw in 32-bit mode.
@end itemize
+@mindex gettime
+@mindex timespec_get
The Gnulib modules @code{gettime} and @code{timespec_get} are partial
substitutes; they implement the @code{CLOCK_REALTIME} functionality of
@code{clock_gettime}.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/close.html}
Gnulib module: close
+@mindex close
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/closedir.html}
Gnulib module: closedir
+@mindex closedir
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: cnd
+@mindex cnd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: cnd
+@mindex cnd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: cnd
+@mindex cnd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: cnd
+@mindex cnd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: cnd
+@mindex cnd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: cnd
+@mindex cnd
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/connect.html}
Gnulib module: connect
+@mindex connect
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/copysign.html}
Gnulib module: copysign
+@mindex copysign
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/copysignf.html}
Gnulib module: copysignf
+@mindex copysignf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/copysignl.html}
Gnulib module: copysignl
+@mindex copysignl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/cos.html}
Gnulib module: cos
+@mindex cos
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/cosf.html}
Gnulib module: cosf
+@mindex cosf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/cosh.html}
Gnulib module: cosh
+@mindex cosh
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/coshf.html}
Gnulib module: coshf
+@mindex coshf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/cosl.html}
Gnulib module: cosl
+@mindex cosl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/creat.html}
Gnulib module: creat
+@mindex creat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ctime.html}
Gnulib module: ctime
+@mindex ctime
Portability problems fixed by Gnulib:
@itemize
POSIX.1-2017 specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ctime_r.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/dirfd.html}
Gnulib module: dirfd
+@mindex dirfd
Portability problems fixed by Gnulib:
@itemize
names in Windows syntax.
@end itemize
+@mindex dirname
The Gnulib module @code{dirname} provides similar API, with functions
@code{dir_name} and @code{mdir_name}, that also works with Windows
file names.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/dprintf.html}
Gnulib module: dprintf or dprintf-posix or dprintf-gnu
+@mindex dprintf
+@mindex dprintf-posix
+@mindex dprintf-gnu
Portability problems fixed by either Gnulib module @code{dprintf} or @code{dprintf-posix} or @code{dprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{dprintf-posix} or @code{dprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/dup.html}
Gnulib module: dup
+@mindex dup
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/dup2.html}
Gnulib module: dup2
+@mindex dup2
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html,,man dup3}
Gnulib module: dup3
+@mindex dup3
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/duplocale.html}
Gnulib module: duplocale
+@mindex duplocale
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/environ.html}
Gnulib module: environ
+@mindex environ
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/erf.html}
Gnulib module: erf
+@mindex erf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/erfc.html}
Gnulib module: erfc
+@mindex erfc
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/execl.html}
Gnulib module: execl
+@mindex execl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/execle.html}
Gnulib module: execle
+@mindex execle
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/execlp.html}
Gnulib module: execlp
+@mindex execlp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/execv.html}
Gnulib module: execv
+@mindex execv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/execve.html}
Gnulib module: execve
+@mindex execve
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/execvp.html}
Gnulib module: execvp
+@mindex execvp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/exit.html}
Gnulib module: stdlib
+@mindex stdlib
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/exp.html}
Gnulib module: exp
+@mindex exp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/exp2.html}
Gnulib module: exp2
+@mindex exp2
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/exp2f.html}
Gnulib module: exp2f
+@mindex exp2f
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/exp2l.html}
Gnulib module: exp2l or exp2l-ieee
+@mindex exp2l
+@mindex exp2l-ieee
Portability problems fixed by either Gnulib module @code{exp2l} or @code{exp2l-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/expf.html}
Gnulib module: expf
+@mindex expf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/expl.html}
Gnulib module: expl
+@mindex expl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/expm1.html}
Gnulib module: expm1 or expm1-ieee
+@mindex expm1
+@mindex expm1-ieee
Portability problems fixed by either Gnulib module @code{expm1} or @code{expm1-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/expm1f.html}
Gnulib module: expm1f or expm1f-ieee
+@mindex expm1f
+@mindex expm1f-ieee
Portability problems fixed by either Gnulib module @code{expm1f} or @code{expm1f-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/expm1l.html}
Gnulib module: expm1l
+@mindex expm1l
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fabs.html}
Gnulib module: fabs
+@mindex fabs
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fabsf.html}
Gnulib module: fabsf
+@mindex fabsf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fabsl.html}
Gnulib module: fabsl
+@mindex fabsl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/faccessat.html}
Gnulib module: faccessat
+@mindex faccessat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchdir.html}
Gnulib module: fchdir
+@mindex fchdir
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchmodat.html}
Gnulib module: fchmodat
+@mindex fchmodat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchownat.html}
Gnulib module: fchownat
+@mindex fchownat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fclose.html}
Gnulib module: fclose
+@mindex fclose
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-fcntl-3.html}
Gnulib module: fcntl
+@mindex fcntl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fdatasync.html}
Gnulib module: fdatasync
+@mindex fdatasync
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fdopen.html}
Gnulib module: fdopen
+@mindex fdopen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fdopendir.html}
Gnulib module: fdopendir
+@mindex fdopendir
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/feclearexcept.html}
Gnulib module: fenv-exceptions-tracking-c99
+@mindex fenv-exceptions-tracking-c99
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fegetenv.html}
Gnulib module: fenv-environment
+@mindex fenv-environment
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fegetexceptflag.html}
Gnulib module: fenv-exceptions-state-c99
+@mindex fenv-exceptions-state-c99
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fegetround.html}
Gnulib module: fenv-rounding
+@mindex fenv-rounding
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/feholdexcept.html}
Gnulib module: fenv-environment
+@mindex fenv-environment
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/feraiseexcept.html}
Gnulib module: fenv-exceptions-tracking-c99
+@mindex fenv-exceptions-tracking-c99
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fesetenv.html}
Gnulib module: fenv-environment
+@mindex fenv-environment
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: fenv-exceptions-tracking-c23
+@mindex fenv-exceptions-tracking-c23
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fesetexceptflag.html}
Gnulib module: fenv-exceptions-state-c99
+@mindex fenv-exceptions-state-c99
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fesetround.html}
Gnulib module: fenv-rounding
+@mindex fenv-rounding
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fetestexcept.html}
Gnulib module: fenv-exceptions-tracking-c99
+@mindex fenv-exceptions-tracking-c99
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: fenv-exceptions-state-c23
+@mindex fenv-exceptions-state-c23
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/feupdateenv.html}
Gnulib module: fenv-environment
+@mindex fenv-environment
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fflush.html}
Gnulib module: fflush
+@mindex fflush
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ffs.html}
Gnulib module: ffs
+@mindex ffs
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ffsl.3.html,,man ffsl}
Gnulib module: ffsl
+@mindex ffsl
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/ffsll.3.html,,man ffsll}
Gnulib module: ffsll
+@mindex ffsll
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fgetc.html}
Gnulib module: stdio, nonblocking
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fgets.html}
Gnulib module: stdio, nonblocking
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/floor.html}
Gnulib module: floor or floor-ieee
+@mindex floor
+@mindex floor-ieee
Portability problems fixed by either Gnulib module @code{floor} or @code{floor-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/floorf.html}
Gnulib module: floorf or floorf-ieee
+@mindex floorf
+@mindex floorf-ieee
Portability problems fixed by either Gnulib module @code{floorf} or @code{floorf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/floorl.html}
Gnulib module: floorl or floorl-ieee
+@mindex floorl
+@mindex floorl-ieee
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fma.html}
Gnulib module: fma
+@mindex fma
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmaf.html}
Gnulib module: fmaf
+@mindex fmaf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmal.html}
Gnulib module: fmal
+@mindex fmal
Portability problems fixed by Gnulib:
@itemize
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.5.x, mingw, MSVC 14, Android 5.1.
@end itemize
+@mindex sf-istream
An alternative to the @code{fmemopen} function is the Gnulib module
@code{sf-istream}.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmod.html}
Gnulib module: fmod or fmod-ieee
+@mindex fmod
+@mindex fmod-ieee
Portability problems fixed by either Gnulib module @code{fmod} or @code{fmod-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmodf.html}
Gnulib module: fmodf or fmodf-ieee
+@mindex fmodf
+@mindex fmodf-ieee
Portability problems fixed by either Gnulib module @code{fmodf} or @code{fmodf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmodl.html}
Gnulib module: fmodl or fmodl-ieee
+@mindex fmodl
+@mindex fmodl-ieee
Portability problems fixed by either Gnulib module @code{fmodl} or @code{fmodl-ieee}:
@itemize
@end itemize
Gnulib module: fnmatch or fnmatch-gnu
+@mindex fnmatch
+@mindex fnmatch-gnu
Portability problems fixed by either Gnulib module @code{fnmatch} or @code{fnmatch-gnu}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fopen.html}
Gnulib module: fopen or fopen-gnu
+@mindex fopen
+@mindex fopen-gnu
Portability problems fixed by either Gnulib module @code{fopen} or @code{fopen-gnu}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fprintf.html}
Gnulib module: fprintf-posix or fprintf-gnu or stdio, nonblocking, sigpipe
+@mindex fprintf-posix
+@mindex fprintf-gnu
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by either Gnulib module @code{fprintf-posix} or @code{fprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{fprintf-posix} or @code{fprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fputc.html}
Gnulib module: stdio, nonblocking, sigpipe
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fputs.html}
Gnulib module: stdio, nonblocking, sigpipe
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fread.html}
Gnulib module: stdio, nonblocking
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/free.html}
Gnulib module: free-posix
+@mindex free-posix
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/freeaddrinfo.html}
Gnulib module: getaddrinfo
+@mindex getaddrinfo
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/freopen.html}
Gnulib module: freopen
+@mindex freopen
Portability problems fixed by Gnulib:
@itemize
HP-UX 11.00, Solaris 9.
@item
Applications should not assume that @code{fileno(f)} will be the same
-before and after a call to @code{freopen(name,mode,f)}. However, the
+before and after a call to @code{freopen(name,mode,f)}.
+@mindex freopen-safer
+However, the
module @code{freopen-safer} can at least protect @code{stdin}, @code{stdout},
and @code{stderr}.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/frexp.html}
Gnulib module: frexp
+@mindex frexp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/frexpf.html}
Gnulib module: frexpf
+@mindex frexpf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/frexpl.html}
Gnulib module: frexpl
+@mindex frexpl
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-fscanf.html}
Gnulib module: stdio, nonblocking
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fseek.html}
Gnulib module: fseek
+@mindex fseek
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fseeko.html}
Gnulib module: fseeko
+@mindex fseeko
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fstat.html}
Gnulib module: fstat
+@mindex fstat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fstatat.html}
Gnulib module: fstatat
+@mindex fstatat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fsync.html}
Gnulib module: fsync
+@mindex fsync
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ftell.html}
Gnulib module: ftell
+@mindex ftell
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ftello.html}
Gnulib module: ftello
+@mindex ftello
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ftruncate.html}
Gnulib module: ftruncate
+@mindex ftruncate
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/futimens.html}
Gnulib module: futimens
+@mindex futimens
Portability problems fixed by Gnulib:
@itemize
Linux kernel 6.9.
@item
Some platforms lack the ability to change the timestamps of a file
-descriptor, so the replacement can fail with @code{ENOSYS}; the gnulib
-module @samp{utimens} provides a more reliable interface @code{fdutimens}.
+descriptor, so the replacement can fail with @code{ENOSYS};
+@mindex utimens
+the gnulib module @samp{utimens} provides a more reliable interface
+@code{fdutimens}.
@item
The mere act of using @code{stat} modifies the access time of
directories on some platforms, so @code{utimensat} can only
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/fwrite.html}
Gnulib module: stdio, nonblocking, sigpipe
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/gai_strerror.html}
Gnulib module: getaddrinfo
+@mindex getaddrinfo
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getaddrinfo.html}
Gnulib module: getaddrinfo
+@mindex getaddrinfo
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getc.html}
Gnulib module: stdio, nonblocking
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getchar.html}
Gnulib module: stdio, nonblocking
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-getcwd.html}
Gnulib module: getcwd or getcwd-lgpl
+@mindex getcwd
+@mindex getcwd-lgpl
Portability problems fixed by either Gnulib module @code{getcwd} or
@code{getcwd-lgpl}:
FreeBSD 14.0, NetBSD 5.0, OpenBSD 7.5, Minix 3.1.8, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
@end itemize
+@mindex parse-datetime
Gnulib provides a module @code{parse-datetime} that contains a function
@code{parse_datetime}
that has similar functionality as the @code{getdate} function.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getdelim.html}
Gnulib module: getdelim
+@mindex getdelim
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: getentropy
+@mindex getentropy
Portability problems fixed by Gnulib:
@itemize
randomness goes bad: virtual machine vulnerabilities and hedging
deployed cryptography}. NDSS 2010.}
+@mindex getrandom
+@mindex crypto/gc-random
Related modules include @code{getrandom}, which has a more-flexible
but more-complex API, and @code{crypto/gc-random}, which is likely a
better match for code already using the other @code{crypto} APIs.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getgrgid_r.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getgrnam_r.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getgroups.html}
Gnulib module: getgroups
+@mindex getgroups
Portability problems fixed by Gnulib:
@itemize
supplemental group ids.
@end itemize
+@mindex mgetgroups
The Gnulib module @code{mgetgroups} provides a similar API.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/gethostname.html}
Gnulib module: gethostname
+@mindex gethostname
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getline.html}
Gnulib module: getline
+@mindex getline
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getlogin.html}
Gnulib module: getlogin
+@mindex getlogin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getlogin_r.html}
Gnulib module: getlogin_r
+@mindex getlogin_r
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getnameinfo.html}
Gnulib module: getaddrinfo
+@mindex getaddrinfo
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/libutil-getopt-3.html}
Gnulib module: getopt-posix or getopt-gnu
+@mindex getopt-posix
+@mindex getopt-gnu
The module @code{getopt-gnu} has support for ``long options'' and for
``options that take optional arguments''. Compared to the API defined by POSIX,
@end ifnotinfo
Gnulib module: getpayload
+@mindex getpayload
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: getpayloadf
+@mindex getpayloadf
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: getpayloadl
+@mindex getpayloadl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpeername.html}
Gnulib module: getpeername
+@mindex getpeername
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpwnam_r.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getpwuid_r.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getrusage.html}
Gnulib module: getrusage
+@mindex getrusage
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getsockname.html}
Gnulib module: getsockname
+@mindex getsockname
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-getsockopt-1.html}
Gnulib module: getsockopt
+@mindex getsockopt
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/getsubopt.html}
Gnulib module: getsubopt
+@mindex getsubopt
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/glob.html}
Gnulib module: glob
+@mindex glob
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/globfree.html}
Gnulib module: glob
+@mindex glob
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/gmtime_r.html}
Gnulib module: time_r
+@mindex time_r
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/grantpt.html}
Gnulib module: grantpt
+@mindex grantpt
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/htobe16.3.html,,man htobe16}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/htobe32.3.html,,man htobe32}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/htobe64.3.html,,man htobe64}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/htole16.3.html,,man htole16}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/htole32.3.html,,man htole32}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/htole64.3.html,,man htole64}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/htonl.html}
Gnulib module: htonl
+@mindex htonl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/htons.html}
Gnulib module: htonl
+@mindex htonl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/hypot.html}
Gnulib module: hypot or hypot-ieee
+@mindex hypot
+@mindex hypot-ieee
Portability problems fixed by either Gnulib module @code{hypot} or @code{hypot-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/hypotf.html}
Gnulib module: hypotf or hypotf-ieee
+@mindex hypotf
+@mindex hypotf-ieee
Portability problems fixed by either Gnulib module @code{hypotf} or @code{hypotf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/hypotl.html}
Gnulib module: hypotl or hypotl-ieee
+@mindex hypotl
+@mindex hypotl-ieee
Portability problems fixed by either Gnulib module @code{hypotl} or @code{hypotl-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iconv.html}
Gnulib module: iconv
+@mindex iconv
Portability problems fixed by Gnulib:
@itemize
cannot be converted to the output character set, glibc's and GNU libiconv's
@code{iconv} stop the conversion. Some other implementations put an
implementation-defined character into the output buffer.
+@mindex striconv
+@mindex striconveh
Gnulib provides higher-level facilities @code{striconv} and @code{striconveh}
(wrappers around @code{iconv}) that deal with conversion errors in a platform
independent way.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iconv_close.html}
Gnulib module: iconv
+@mindex iconv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iconv_open.html}
Gnulib module: iconv, iconv_open, iconv_open-utf
+@mindex iconv
+@mindex iconv_open
+@mindex iconv_open-utf
Portability problems fixed by either Gnulib module @code{iconv} or @code{iconv_open}:
@itemize
@item
For some encodings A and B, this function cannot convert directly from A to B,
although an indirect conversion from A through UTF-8 to B is possible. This
-occurs on some platforms: Solaris 11 2010-11. Gnulib provides a higher-level
+occurs on some platforms: Solaris 11 2010-11.
+@mindex striconveh
+Gnulib provides a higher-level
facility @code{striconveh} (a wrapper around @code{iconv}) that deals with
this problem.
@item
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ilogb.html}
Gnulib module: ilogb
+@mindex ilogb
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ilogbf.html}
Gnulib module: ilogbf
+@mindex ilogbf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ilogbl.html}
Gnulib module: ilogbl
+@mindex ilogbl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/imaxabs.html}
Gnulib module: imaxabs
+@mindex imaxabs
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/imaxdiv.html}
Gnulib module: imaxdiv
+@mindex imaxdiv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/inet_ntop.html}
Gnulib module: inet_ntop
+@mindex inet_ntop
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/inet_pton.html}
Gnulib module: inet_pton
+@mindex inet_pton
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/initstate.html}
Gnulib module: random
+@mindex random
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isalnum.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isalnum
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswalnum
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isalnum
+@mindex c32isalnum
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isalnum}.
@item mb_isalnum
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_alnum
+@mindex unictype/ctype-alnum
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-alnum}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isalpha.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isalpha
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswalpha
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isalpha
+@mindex c32isalpha
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isalpha}.
@item mb_isalpha
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_alpha
+@mindex unictype/ctype-alpha
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-alpha}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isatty.html}
Gnulib module: isatty
+@mindex isatty
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isblank.html}
Gnulib module: isblank
+@mindex isblank
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isblank
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswblank
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isblank
+@mindex c32isblank
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isblank}.
@item mb_isblank
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_blank
+@mindex unictype/ctype-blank
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-blank}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iscntrl.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_iscntrl
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswcntrl
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32iscntrl
+@mindex c32iscntrl
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32iscntrl}.
@item mb_iscntrl
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_cntrl
+@mindex unictype/ctype-cntrl
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-cntrl}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isdigit.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isdigit
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswdigit
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isdigit
+@mindex c32isdigit
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isdigit}.
@item mb_isdigit
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_digit
+@mindex unictype/ctype-digit
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-digit}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isfinite.html}
Gnulib module: isfinite
+@mindex isfinite
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isgraph.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isgraph
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswgraph
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isgraph
+@mindex c32isgraph
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isgraph}.
@item mb_isgraph
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_graph
+@mindex unictype/ctype-graph
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-graph}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isinf.html}
Gnulib module: isinf
+@mindex isinf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/islower.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_islower
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswlower
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32islower
+@mindex c32islower
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32islower}.
@item mb_islower
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_lower
+@mindex unictype/ctype-lower
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-lower}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isnan.html}
Gnulib module: isnan
+@mindex isnan
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isprint.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isprint
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswprint
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isprint
+@mindex c32isprint
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isprint}.
@item mb_isprint
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_print
+@mindex unictype/ctype-print
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-print}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ispunct.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_ispunct
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswpunct
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32ispunct
+@mindex c32ispunct
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32ispunct}.
@item mb_ispunct
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_punct
+@mindex unictype/ctype-punct
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-punct}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isspace.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isspace
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswspace
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isspace
+@mindex c32isspace
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isspace}.
@item mb_isspace
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_space
+@mindex unictype/ctype-space
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-space}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isupper.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isupper
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswupper
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isupper
+@mindex c32isupper
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isupper}.
@item mb_isupper
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_upper
+@mindex unictype/ctype-upper
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-upper}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswalnum.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isalnum
However, the Gnulib function @code{c32isalnum}, provided by Gnulib module
@code{c32isalnum}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswalpha.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isalpha
However, the Gnulib function @code{c32isalpha}, provided by Gnulib module
@code{c32isalpha}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswblank.html}
Gnulib module: iswblank
+@mindex iswblank
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isblank
However, the Gnulib function @code{c32isblank}, provided by Gnulib module
@code{c32isblank}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswcntrl.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32iscntrl
However, the Gnulib function @code{c32iscntrl}, provided by Gnulib module
@code{c32iscntrl}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswctype.html}
Gnulib module: iswctype
+@mindex iswctype
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32_apply_type_test
However, the Gnulib function @code{c32_apply_type_test}, provided by Gnulib
module @code{c32_apply_type_test}, operates on 32-bit wide characters and
therefore does not have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswdigit.html}
Gnulib module: iswdigit
+@mindex iswdigit
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isdigit
However, the Gnulib function @code{c32isdigit}, provided by Gnulib module
@code{c32isdigit}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswgraph.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isgraph
However, the Gnulib function @code{c32isgraph}, provided by Gnulib module
@code{c32isgraph}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswlower.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32islower
However, the Gnulib function @code{c32islower}, provided by Gnulib module
@code{c32islower}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswprint.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isprint
However, the Gnulib function @code{c32isprint}, provided by Gnulib module
@code{c32isprint}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswpunct.html}
Gnulib module: iswpunct
+@mindex iswpunct
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32ispunct
However, the Gnulib function @code{c32ispunct}, provided by Gnulib module
@code{c32ispunct}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswspace.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isspace
However, the Gnulib function @code{c32isspace}, provided by Gnulib module
@code{c32isspace}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswupper.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isupper
However, the Gnulib function @code{c32isupper}, provided by Gnulib module
@code{c32isupper}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/iswxdigit.html}
Gnulib module: iswxdigit
+@mindex iswxdigit
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32isxdigit
However, the Gnulib function @code{c32isxdigit}, provided by Gnulib module
@code{c32isxdigit}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/isxdigit.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_isxdigit
+@mindex c-ctype
This function operates in a locale independent way and returns true only for
ASCII characters. It is provided by the Gnulib module @samp{c-ctype}.
@item iswxdigit
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32isxdigit
+@mindex c32isxdigit
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32isxdigit}.
@item mb_isxdigit
+@mindex mbchar
This function operates in a locale dependent way, on multibyte characters.
It is provided by the Gnulib module @samp{mbchar}.
@item uc_is_xdigit
+@mindex unictype/ctype-xdigit
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unictype/ctype-xdigit}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/j0.html}
Gnulib module: j0
+@mindex j0
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/j1.html}
Gnulib module: j1
+@mindex j1
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/jn.html}
Gnulib module: jn
+@mindex jn
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/lchown.html}
Gnulib module: lchown
+@mindex lchown
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ldexp.html}
Gnulib module: ldexp
+@mindex ldexp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ldexpf.html}
Gnulib module: ldexpf
+@mindex ldexpf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ldexpl.html}
Gnulib module: ldexpl
+@mindex ldexpl
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/le16toh.3.html,,man le16toh}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/le32toh.3.html,,man le32toh}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/le64toh.3.html,,man le64toh}
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/lgamma.html}
Gnulib module: lgamma
+@mindex lgamma
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-link-1.html}
Gnulib module: link
+@mindex link
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/linkat.html}
Gnulib module: linkat
+@mindex linkat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/listen.html}
Gnulib module: listen
+@mindex listen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/localeconv.html}
Gnulib module: localeconv
+@mindex localeconv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/localtime.html}
Gnulib module: localtime
+@mindex localtime
Portability problems fixed by Gnulib:
@itemize
On some platforms, this function loops forever for values
near extrema (such as the year @math{-2**31}):
Mac OS X 10.6.
+@mindex time_rz
You can use the @code{time_rz} module to work around the problem.
@item
On some platforms, this function returns nonsense values for
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/localtime_r.html}
Gnulib module: time_r
+@mindex time_r
Portability problems fixed by Gnulib:
@itemize
On some platforms, this function loops forever for values
near extrema (such as the year @math{-2**31}):
Mac OS X 10.6.
+@mindex time_rz
You can use the @code{time_rz} module to work around the problem.
@item
On some platforms, this function returns nonsense values for
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log.html}
Gnulib module: log or log-ieee
+@mindex log
+@mindex log-ieee
Portability problems fixed by either Gnulib module @code{log} or @code{log-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log10.html}
Gnulib module: log10 or log10-ieee
+@mindex log10
+@mindex log10-ieee
Portability problems fixed by either Gnulib module @code{log10} or @code{log10-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log10f.html}
Gnulib module: log10f or log10f-ieee
+@mindex log10f
+@mindex log10f-ieee
Portability problems fixed by either Gnulib module @code{log10f} or @code{log10f-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log10l.html}
Gnulib module: log10l
+@mindex log10l
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log1p.html}
Gnulib module: log1p or log1p-ieee
+@mindex log1p
+@mindex log1p-ieee
Portability problems fixed by either Gnulib module @code{log1p} or @code{log1p-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log1pf.html}
Gnulib module: log1pf or log1pf-ieee
+@mindex log1pf
+@mindex log1pf-ieee
Portability problems fixed by either Gnulib module @code{log1pf} or @code{log1pf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log1pl.html}
Gnulib module: log1pl or log1pl-ieee
+@mindex log1pl
+@mindex log1pl-ieee
Portability problems fixed by either Gnulib module @code{log1pl} or @code{log1pl-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log2.html}
Gnulib module: log2 or log2-ieee
+@mindex log2
+@mindex log2-ieee
Portability problems fixed by either Gnulib module @code{log2} or @code{log2-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log2f.html}
Gnulib module: log2f or log2f-ieee
+@mindex log2f
+@mindex log2f-ieee
Portability problems fixed by either Gnulib module @code{log2f} or @code{log2f-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/log2l.html}
Gnulib module: log2l
+@mindex log2l
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/logb.html}
Gnulib module: logb
+@mindex logb
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/logbf.html}
Gnulib module: logbf
+@mindex logbf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/logbl.html}
Gnulib module: logbl
+@mindex logbl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/logf.html}
Gnulib module: logf or logf-ieee
+@mindex logf
+@mindex logf-ieee
Portability problems fixed by either Gnulib module @code{logf} or @code{logf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/logl.html}
Gnulib module: logl
+@mindex logl
Portability problems fixed by Gnulib:
@itemize
ISO C23 specification:@* @url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf} section 7.12.6.14
Gnulib module: logp1
+@mindex logp1
Portability problems fixed by Gnulib:
@itemize
ISO C23 specification:@* @url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf} section 7.12.6.14
Gnulib module: logp1f
+@mindex logp1f
Portability problems fixed by Gnulib:
@itemize
ISO C23 specification:@* @url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf} section 7.12.6.14
Gnulib module: logp1l
+@mindex logp1l
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/lseek.html}
Gnulib module: lseek
+@mindex lseek
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/lstat.html}
Gnulib module: lstat
+@mindex lstat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/malloc.html}
Gnulib module: malloc-posix
+@mindex malloc-posix
Portability problems fixed by Gnulib:
@itemize
so @code{malloc-posix} does not allow going over the limit.
@end itemize
+@mindex malloc-gnu
Extension: Gnulib provides a module @samp{malloc-gnu} that substitutes a
@code{malloc} implementation that behaves more like the glibc implementation,
by fixing this portability problem:
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbrlen.html}
Gnulib module: mbrlen
+@mindex mbrlen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbrtoc16.html}
Gnulib module: mbrtoc16
+@mindex mbrtoc16
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbrtoc32.html}
Gnulib module: mbrtoc32 or mbrtoc32-regular
+@mindex mbrtoc32
+@mindex mbrtoc32-regular
Portability problems fixed by either Gnulib module @code{mbrtoc32} or @code{mbrtoc32-regular}:
@itemize
Haiku 2020.
@end itemize
+@mindex uchar-c23
Note: If you want the guarantee that the @code{char32_t} values returned
by this function are Unicode code points, you also need to request the
@code{uchar-c23} module.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbrtowc.html}
Gnulib module: mbrtowc
+@mindex mbrtowc
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex mbrtoc32
However, the ISO C11 function @code{mbrtoc32}, provided by Gnulib module
@code{mbrtoc32}, operates on 32-bit wide characters and therefore does not have
this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbsinit.html}
Gnulib module: mbsinit
+@mindex mbsinit
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbsnrtowcs.html}
Gnulib module: mbsnrtowcs
+@mindex mbsnrtowcs
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex mbsnrtoc32s
However, the Gnulib function @code{mbsnrtoc32s}, provided by Gnulib module
@code{mbsnrtoc32s}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbsrtowcs.html}
Gnulib module: mbsrtowcs
+@mindex mbsrtowcs
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex mbsrtoc32s
However, the Gnulib function @code{mbsrtoc32s}, provided by Gnulib module
@code{mbsrtoc32s}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbstowcs.html}
Gnulib module: mbstowcs
+@mindex mbstowcs
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex mbstoc32s
However, the Gnulib function @code{mbstoc32s}, provided by Gnulib module
@code{mbstoc32s}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbtowc.html}
Gnulib module: mbtowc
+@mindex mbtowc
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/memchr.html}
Gnulib module: memchr
+@mindex memchr
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/memcmp.html}
Gnulib module: memcmp
+@mindex memcmp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/memcpy.html}
Gnulib module: memcpy
+@mindex memcpy
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: memmem or memmem-simple
+@mindex memmem
+@mindex memmem-simple
Both modules implement the same replacement for the @code{memmem} function
with the @code{memmem} module providing a replacement on more platforms where
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/memmove.html}
Gnulib module: memmove
+@mindex memmove
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/memset.html}
Gnulib module: memset
+@mindex memset
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: memset_explicit
+@mindex memset_explicit
The @code{memset_explicit} function is an approximation to what is
needed, and does not suffice in general to erase information.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkdir.html}
Gnulib module: sys_stat or mkdir
+@mindex sys_stat
+@mindex mkdir
Portability problems fixed by either Gnulib module @code{sys_stat} or @code{mkdir}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkdirat.html}
Gnulib module: mkdirat
+@mindex mkdirat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkdtemp.html}
Gnulib module: mkdtemp
+@mindex mkdtemp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkfifo.html}
Gnulib module: mkfifo
+@mindex mkfifo
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkfifoat.html}
Gnulib module: mkfifoat
+@mindex mkfifoat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mknod.html}
Gnulib module: mknod
+@mindex mknod
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mknodat.html}
Gnulib module: mkfifoat
+@mindex mkfifoat
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man3/mkostemp.3.html,,man mkostemp}
Gnulib module: mkostemp
+@mindex mkostemp
Portability problems fixed by Gnulib:
@itemize
@itemize
@end itemize
+@mindex clean-temp
The gnulib module @code{clean-temp} can create temporary files that will not
be left behind after signals such as SIGINT.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkstemp.html}
Gnulib module: mkstemp
+@mindex mkstemp
Portability problems fixed by Gnulib:
@itemize
@itemize
@end itemize
+@mindex clean-temp
The gnulib module @code{clean-temp} can create temporary files that will not
be left behind after signals such as SIGINT.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mktime.html}
Gnulib module: mktime
+@mindex mktime
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/modf.html}
Gnulib module: modf or modf-ieee
+@mindex modf
+@mindex modf-ieee
Portability problems fixed by either Gnulib module @code{modf} or @code{modf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/modff.html}
Gnulib module: modff or modff-ieee
+@mindex modff
+@mindex modff-ieee
Portability problems fixed by either Gnulib module @code{modff} or @code{modff-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/modfl.html}
Gnulib module: modfl or modfl-ieee
+@mindex modfl
+@mindex modfl-ieee
Portability problems fixed by either Gnulib module @code{modfl} or @code{modfl-ieee}:
@itemize
@end ifnotinfo
Gnulib module: mtx
+@mindex mtx
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: mtx
+@mindex mtx
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: mtx
+@mindex mtx
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: mtx
+@mindex mtx
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: mtx
+@mindex mtx
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: mtx
+@mindex mtx
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/nanosleep.html}
Gnulib module: nanosleep
+@mindex nanosleep
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/nextafter.html}
Gnulib module: nextafter
+@mindex nextafter
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/nl_langinfo.html}
Gnulib module: nl_langinfo
+@mindex nl_langinfo
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ntohl.html}
Gnulib module: htonl
+@mindex htonl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ntohs.html}
Gnulib module: htonl
+@mindex htonl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/open.html}
Gnulib module: open, fchdir
+@mindex open
+@mindex fchdir
Portability problems fixed by the Gnulib module @code{open}:
@itemize
directory, on some platforms:
macOS 14, FreeBSD 7.2, AIX 7.1, HP-UX 11.00, Solaris 9.
@item
+@mindex nonblocking
This function does not support the @code{O_NONBLOCK} flag when it is defined
by the gnulib module @code{nonblocking} on some platforms:
mingw, MSVC 14.
Mac OS X 10.5, FreeBSD 6.0, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.5.x, mingw, MSVC 14, Android 5.1.
@end itemize
+@mindex string-buffer
An alternative to the @code{open_memstream} function is the Gnulib module
@code{string-buffer}.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/openat.html}
Gnulib module: openat
+@mindex openat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/opendir.html}
Gnulib module: opendir
+@mindex opendir
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pclose.html}
Gnulib module: pclose
+@mindex pclose
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/perror.html}
Gnulib module: perror
+@mindex perror
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pipe.html}
Gnulib module: pipe-posix
+@mindex pipe-posix
Portability problems fixed by Gnulib:
@itemize
Documentation:@* @uref{https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html,,man pipe2}
Gnulib module: pipe2
+@mindex pipe2
Portability problems fixed by Gnulib:
@itemize
Cygwin 1.7.9.
@end itemize
+@mindex nonblocking
Note: This function portably supports the @code{O_NONBLOCK} flag only if the
gnulib module @code{nonblocking} is also used.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/poll.html}
Gnulib module: poll
+@mindex poll
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/popen.html}
Gnulib module: popen
+@mindex popen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_memalign.html}
Gnulib module: posix_memalign
+@mindex posix_memalign
Although this function is superseded by @code{aligned_alloc},
it is more portable to older systems that do not support C11.
glibc 2.40.
@end itemize
+@mindex aligned-malloc
The Gnulib module @code{aligned-malloc} provides functions for
allocating and freeing blocks of suitably aligned memory.
+@mindex pagealign_alloc
The Gnulib module @code{pagealign_alloc} provides a similar API for
allocating and freeing blocks of memory aligned on a system page boundary.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_openpt.html}
Gnulib module: posix_openpt
+@mindex posix_openpt
Portability problems fixed by Gnulib:
@itemize
Note that when using this function to open the master side of a
pseudo-terminal, you still need platform dependent code to open the
-corresponding slave side. The Gnulib module @code{openpty} provides
+corresponding slave side.
+@mindex openpty
+The Gnulib module @code{openpty} provides
an easy-to-use API that does both at once.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn.html}
Gnulib module: posix_spawn
+@mindex posix_spawn
Portability problems fixed by Gnulib:
@itemize
AIX 6.1 (under particular circumstances).
@end itemize
+@mindex posix_spawn_file_actions_addchdir
+@mindex posix_spawn_file_actions_addfchdir
The Gnulib modules @code{posix_spawn_file_actions_addchdir} and
@code{posix_spawn_file_actions_addfchdir} provide additional actions,
that consist in changing the current directory of the child process
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn_file_actions_addclose.html}
Gnulib module: posix_spawn_file_actions_addclose
+@mindex posix_spawn_file_actions_addclose
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn_file_actions_adddup2.html}
Gnulib module: posix_spawn_file_actions_adddup2
+@mindex posix_spawn_file_actions_adddup2
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn_file_actions_addopen.html}
Gnulib module: posix_spawn_file_actions_addopen
+@mindex posix_spawn_file_actions_addopen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn_file_actions_destroy.html}
Gnulib module: posix_spawn_file_actions_destroy
+@mindex posix_spawn_file_actions_destroy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawn_file_actions_init.html}
Gnulib module: posix_spawn_file_actions_init
+@mindex posix_spawn_file_actions_init
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_destroy.html}
Gnulib module: posix_spawnattr_destroy
+@mindex posix_spawnattr_destroy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_getflags.html}
Gnulib module: posix_spawnattr_getflags
+@mindex posix_spawnattr_getflags
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_getpgroup.html}
Gnulib module: posix_spawnattr_getpgroup
+@mindex posix_spawnattr_getpgroup
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_getschedparam.html}
Gnulib module: posix_spawnattr_getschedparam
+@mindex posix_spawnattr_getschedparam
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_getschedpolicy.html}
Gnulib module: posix_spawnattr_getschedpolicy
+@mindex posix_spawnattr_getschedpolicy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_getsigdefault.html}
Gnulib module: posix_spawnattr_getsigdefault
+@mindex posix_spawnattr_getsigdefault
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_getsigmask.html}
Gnulib module: posix_spawnattr_getsigmask
+@mindex posix_spawnattr_getsigmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_init.html}
Gnulib module: posix_spawnattr_init
+@mindex posix_spawnattr_init
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_setflags.html}
Gnulib module: posix_spawnattr_setflags
+@mindex posix_spawnattr_setflags
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_setpgroup.html}
Gnulib module: posix_spawnattr_setpgroup
+@mindex posix_spawnattr_setpgroup
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_setschedparam.html}
Gnulib module: posix_spawnattr_setschedparam
+@mindex posix_spawnattr_setschedparam
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_setschedpolicy.html}
Gnulib module: posix_spawnattr_setschedpolicy
+@mindex posix_spawnattr_setschedpolicy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_setsigdefault.html}
Gnulib module: posix_spawnattr_setsigdefault
+@mindex posix_spawnattr_setsigdefault
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnattr_setsigmask.html}
Gnulib module: posix_spawnattr_setsigmask
+@mindex posix_spawnattr_setsigmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_spawnp.html}
Gnulib module: posix_spawnp
+@mindex posix_spawnp
Portability problems fixed by Gnulib:
@itemize
AIX 6.1 (under particular circumstances).
@end itemize
+@mindex posix_spawn_file_actions_addchdir
+@mindex posix_spawn_file_actions_addfchdir
The Gnulib modules @code{posix_spawn_file_actions_addchdir} and
@code{posix_spawn_file_actions_addfchdir} provide additional actions,
that consist in changing the current directory of the child process
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pow.html}
Gnulib module: pow
+@mindex pow
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/powf.html}
Gnulib module: powf
+@mindex powf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pread.html}
Gnulib module: pread
+@mindex pread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/printf.html}
Gnulib module: printf-posix or printf-gnu or stdio, nonblocking, sigpipe
+@mindex printf-posix
+@mindex printf-gnu
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by either Gnulib module @code{printf-posix} or @code{printf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{printf-posix} or @code{printf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_attr_destroy.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_attr_getdetachstate.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_attr_init.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_attr_setdetachstate.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_broadcast.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_destroy.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_init.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_signal.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_timedwait.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_wait.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_condattr_destroy.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_condattr_init.html}
Gnulib module: pthread-cond
+@mindex pthread-cond
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_create.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_detach.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_equal.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_exit.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_getspecific.html}
Gnulib module: pthread-tss
+@mindex pthread-tss
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_join.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_key_create.html}
Gnulib module: pthread-tss
+@mindex pthread-tss
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_key_delete.html}
Gnulib module: pthread-tss
+@mindex pthread-tss
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_destroy.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_init.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_lock.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_timedlock.html}
Gnulib module: pthread_mutex_timedlock
+@mindex pthread_mutex_timedlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_trylock.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_unlock.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_destroy.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_getrobust.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_gettype.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_init.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_setrobust.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_settype.html}
Gnulib module: pthread-mutex
+@mindex pthread-mutex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_once.html}
Gnulib module: pthread-once
+@mindex pthread-once
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_destroy.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_init.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_rdlock.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_timedrdlock.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_timedwrlock.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_tryrdlock.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_trywrlock.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_unlock.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_wrlock.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlockattr_destroy.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlockattr_init.html}
Gnulib module: pthread-rwlock
+@mindex pthread-rwlock
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_self.html}
Gnulib module: pthread-thread
+@mindex pthread-thread
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_setspecific.html}
Gnulib module: pthread-tss
+@mindex pthread-tss
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_sigmask.html}
Gnulib module: pthread_sigmask
+@mindex pthread_sigmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_destroy.html}
Gnulib module: pthread-spin
+@mindex pthread-spin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_init.html}
Gnulib module: pthread-spin
+@mindex pthread-spin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_lock.html}
Gnulib module: pthread-spin
+@mindex pthread-spin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_trylock.html}
Gnulib module: pthread-spin
+@mindex pthread-spin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_unlock.html}
Gnulib module: pthread-spin
+@mindex pthread-spin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ptsname.html}
Gnulib module: ptsname
+@mindex ptsname
Portability problems fixed by Gnulib:
@itemize
Likewise, the gnulib replacement is not thread-safe.
@end itemize
+@mindex ptsname_r
Note that the Gnulib module @code{ptsname_r} is a version of this
function that is more likely to be thread-safe.
@end itemize
Gnulib module: ptsname_r
+@mindex ptsname_r
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/putc.html}
Gnulib module: stdio, nonblocking, sigpipe
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/putchar.html}
Gnulib module: stdio, nonblocking, sigpipe
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
(as if by @code{unsetenv}).
Gnulib module: putenv-gnu
+@mindex putenv-gnu
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/puts.html}
Gnulib module: stdio, nonblocking, sigpipe
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/pwrite.html}
Gnulib module: pwrite
+@mindex pwrite
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/raise.html}
Gnulib module: raise
+@mindex raise
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/rand.html}
Gnulib module: rand
+@mindex rand
Portability problems fixed by Gnulib:
@itemize
Minix 3.1.8, mingw, MSVC 14, Android 4.4.
@item
This function is removed in POSIX.1-2024.
+@mindex random_r
Use the function @code{random_r} from Gnulib module @code{random_r} instead.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/random.html}
Gnulib module: random
+@mindex random
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/read.html}
Gnulib module: read, stdio, nonblocking
+@mindex read
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{read}:
@itemize
macOS 14.
@end itemize
+@mindex safe-read
For handling @code{EINTR}, Gnulib provides a module @samp{safe-read} with a
function @code{safe_read}.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/readdir.html}
Gnulib module: readdir
+@mindex readdir
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/readdir_r.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/readlink.html}
Gnulib module: readlink
+@mindex readlink
Portability problems fixed by Gnulib:
@itemize
no indication if symlink contents were truncated if the return value
matches the length. Furthermore,
Linux sets @code{errno} to @code{EINVAL} if the
-requested length is zero. Use the gnulib module @code{areadlink} for
+requested length is zero.
+@mindex areadlink
+Use the gnulib module @code{areadlink} for
improved ability to read symlink contents.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/readlinkat.html}
Gnulib module: readlinkat
+@mindex readlinkat
Portability problems fixed by Gnulib:
@itemize
no indication if symlink contents were truncated if the return value
matches the length. Furthermore,
Linux sets @code{errno} to @code{EINVAL} if the
-requested length is zero. Use the gnulib module @code{areadlink} for
+requested length is zero.
+@mindex areadlink
+Use the gnulib module @code{areadlink} for
improved ability to read symlink contents.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/realloc.html}
Gnulib module: realloc-posix
+@mindex realloc-posix
Portability problems fixed by Gnulib:
Android, mingw, MSVC.
@end itemize
+@mindex realloc-gnu
Extension: Gnulib provides a module @samp{realloc-gnu} that substitutes a
@code{realloc} implementation that behaves more like the current
glibc implementation.
@end itemize
Gnulib module: reallocarray
+@mindex reallocarray
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/realpath.html}
Gnulib module: canonicalize-lgpl
+@mindex canonicalize-lgpl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/recv.html}
Gnulib module: recv
+@mindex recv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/recvfrom.html}
Gnulib module: recvfrom
+@mindex recvfrom
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/regcomp.html}
Gnulib module: regex
+@mindex regex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/regerror.html}
Gnulib module: regex
+@mindex regex
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-regexec-2.html}
Gnulib module: regex
+@mindex regex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/regfree.html}
Gnulib module: regex
+@mindex regex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/remainder.html}
Gnulib module: remainder or remainder-ieee
+@mindex remainder
+@mindex remainder-ieee
Portability problems fixed by either Gnulib module @code{remainder} or @code{remainder-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/remainderf.html}
Gnulib module: remainderf or remainderf-ieee
+@mindex remainderf
+@mindex remainderf-ieee
Portability problems fixed by either Gnulib module @code{remainderf} or @code{remainderf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/remainderl.html}
Gnulib module: remainderl or remainderl-ieee
+@mindex remainderl
+@mindex remainderl-ieee
Portability problems fixed by either Gnulib module @code{remainderl} or @code{remainderl-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/remove.html}
Gnulib module: remove
+@mindex remove
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/rename.html}
Gnulib module: rename
+@mindex rename
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/renameat.html}
Gnulib module: renameat
+@mindex renameat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/rewinddir.html}
Gnulib module: rewinddir
+@mindex rewinddir
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/rint.html}
Gnulib module: rint
+@mindex rint
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/rintf.html}
Gnulib module: rintf
+@mindex rintf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/rintl.html}
Gnulib module: rintl
+@mindex rintl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/rmdir.html}
Gnulib module: rmdir
+@mindex rmdir
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/round.html}
Gnulib module: round or round-ieee
+@mindex round
+@mindex round-ieee
Portability problems fixed by either Gnulib module @code{round} or @code{round-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/roundf.html}
Gnulib module: roundf or roundf-ieee
+@mindex roundf
+@mindex roundf-ieee
Portability problems fixed by either Gnulib module @code{roundf} or @code{roundf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/roundl.html}
Gnulib module: roundl or roundl-ieee
+@mindex roundl
+@mindex roundl-ieee
Portability problems fixed by either Gnulib module @code{roundl} or @code{roundl-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/scandir.html}
Gnulib module: scandir
+@mindex scandir
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-scanf.html}
Gnulib module: stdio, nonblocking
+@mindex stdio
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{stdio}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sched_yield.html}
Gnulib module: sched_yield
+@mindex sched_yield
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: secure_getenv
+@mindex secure_getenv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/select.html}
Gnulib module: select
+@mindex select
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/send.html}
Gnulib module: send
+@mindex send
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sendto.html}
Gnulib module: sendto
+@mindex sendto
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/setenv.html}
Gnulib module: setenv
+@mindex setenv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/setlocale.html}
Gnulib module: setlocale, setlocale-null
+@mindex setlocale
+@mindex setlocale-null
Portability problems fixed by Gnulib module @code{setlocale}:
@itemize
@end ifnotinfo
Gnulib module: setpayload
+@mindex setpayload
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: setpayloadf
+@mindex setpayloadf
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: setpayloadl
+@mindex setpayloadl
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: setpayloadsig
+@mindex setpayloadsig
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: setpayloadsigf
+@mindex setpayloadsigf
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: setpayloadsigl
+@mindex setpayloadsigl
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-setsockopt-2.html}
Gnulib module: setsockopt
+@mindex setsockopt
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/setstate.html}
Gnulib module: random
+@mindex random
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/shutdown.html}
Gnulib module: shutdown
+@mindex shutdown
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sig2str.html}
Gnulib module: sig2str
+@mindex sig2str
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigaction.html}
Gnulib module: sigaction
+@mindex sigaction
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigaddset.html}
Gnulib module: sigprocmask
+@mindex sigprocmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigdelset.html}
Gnulib module: sigprocmask
+@mindex sigprocmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigemptyset.html}
Gnulib module: sigprocmask
+@mindex sigprocmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigfillset.html}
Gnulib module: sigprocmask
+@mindex sigprocmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigismember.html}
Gnulib module: sigprocmask
+@mindex sigprocmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/signbit.html}
Gnulib module: signbit
+@mindex signbit
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigpending.html}
Gnulib module: sigprocmask
+@mindex sigprocmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigprocmask.html}
Gnulib module: sigprocmask
+@mindex sigprocmask
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sigwait.html}
Gnulib module: extensions
+@mindex extensions
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sin.html}
Gnulib module: sin
+@mindex sin
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sinf.html}
Gnulib module: sinf
+@mindex sinf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sinh.html}
Gnulib module: sinh
+@mindex sinh
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sinhf.html}
Gnulib module: sinhf
+@mindex sinhf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sinl.html}
Gnulib module: sinl
+@mindex sinl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sleep.html}
Gnulib module: sleep
+@mindex sleep
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/snprintf.html}
Gnulib module: snprintf or snprintf-posix or snprintf-gnu
+@mindex snprintf
+@mindex snprintf-posix
+@mindex snprintf-gnu
Portability problems fixed by either Gnulib module @code{snprintf} or @code{snprintf-posix} or @code{snprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{snprintf-posix} or @code{snprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/socket.html}
Gnulib module: socket
+@mindex socket
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sprintf.html}
Gnulib module: sprintf-posix or sprintf-gnu
+@mindex sprintf-posix
+@mindex sprintf-gnu
Portability problems fixed by either Gnulib module @code{sprintf-posix} or @code{sprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{sprintf-posix} or @code{sprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sqrt.html}
Gnulib module: sqrt
+@mindex sqrt
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sqrtf.html}
Gnulib module: sqrtf
+@mindex sqrtf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/sqrtl.html}
Gnulib module: sqrtl
+@mindex sqrtl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/srandom.html}
Gnulib module: random
+@mindex random
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/stat.html}
Gnulib module: stat
+@mindex stat
Portability problems fixed by Gnulib:
@itemize
Linux < 2.6.36.
@end itemize
+@mindex fsusage
Gnulib provides a module @code{fsusage} that provides similar information
as @code{statvfs}.
section 7.18.16.
Gnulib module: stdc_bit_ceil
+@mindex stdc_bit_ceil
Portability problems fixed by Gnulib:
@itemize
section 7.18.15.
Gnulib module: stdc_bit_floor
+@mindex stdc_bit_floor
Portability problems fixed by Gnulib:
@itemize
section 7.18.14.
Gnulib module: stdc_bit_width
+@mindex stdc_bit_width
Portability problems fixed by Gnulib:
@itemize
section 7.18.12.
Gnulib module: stdc_count_ones
+@mindex stdc_count_ones
Portability problems fixed by Gnulib:
@itemize
section 7.18.11.
Gnulib module: stdc_count_zeros
+@mindex stdc_count_zeros
Portability problems fixed by Gnulib:
@itemize
section 7.18.8.
Gnulib module: stdc_first_leading_one
+@mindex stdc_first_leading_one
Portability problems fixed by Gnulib:
@itemize
section 7.18.7.
Gnulib module: stdc_first_leading_zero
+@mindex stdc_first_leading_zero
Portability problems fixed by Gnulib:
@itemize
section 7.18.10.
Gnulib module: stdc_first_trailing_one
+@mindex stdc_first_trailing_one
Portability problems fixed by Gnulib:
@itemize
section 7.18.9.
Gnulib module: stdc_first_trailing_zero
+@mindex stdc_first_trailing_zero
Portability problems fixed by Gnulib:
@itemize
section 7.18.13.
Gnulib module: stdc_has_single_bit
+@mindex stdc_has_single_bit
Portability problems fixed by Gnulib:
@itemize
section 7.18.4.
Gnulib module: stdc_leading_ones
+@mindex stdc_leading_ones
Portability problems fixed by Gnulib:
@itemize
section 7.18.3.
Gnulib module: stdc_leading_zeros
+@mindex stdc_leading_zeros
Portability problems fixed by Gnulib:
@itemize
section 7.18.6.
Gnulib module: stdc_trailing_ones
+@mindex stdc_trailing_ones
Portability problems fixed by Gnulib:
@itemize
section 7.18.5.
Gnulib module: stdc_trailing_zeros
+@mindex stdc_trailing_zeros
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
stderr is created in 32-bit mode instead of 64-bit mode: Cygwin 1.5.x.
-One workaround is to use freopen(NULL, ``r+'', stderr) on Cygwin 1.5.21
-or newer. Another is to use the gnulib @code{ftello} module and do
-ftello(stderr).
+One workaround is to use @code{freopen(NULL, "r+", stderr)} on Cygwin 1.5.21
+or newer.
+@mindex ftello
+Another is to use the gnulib @code{ftello} module and do
+@code{ftello(stderr)}.
@item
POSIX states that a setuid application can guarantee that fd 2 is
open, but some systems guarantee this even for non-setuid programs.
@itemize
@item
stdout is created in 32-bit mode instead of 64-bit mode: Cygwin 1.5.x.
-One workaround is to use freopen(NULL, ``w'', stdout) on Cygwin 1.5.21
-or newer. Another is to use the gnulib @code{ftello} module and do
-ftello(stdout).
+One workaround is to use @code{freopen(NULL, "w", stdout)} on Cygwin 1.5.21
+or newer.
+@mindex ftello
+Another is to use the gnulib @code{ftello} module and do
+@code{ftello(stdout)}.
@item
POSIX states that a setuid application can guarantee that fd 1 is
open, but some systems guarantee this even for non-setuid programs.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/stpcpy.html}
Gnulib module: stpcpy
+@mindex stpcpy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/stpncpy.html}
Gnulib module: stpncpy
+@mindex stpncpy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/str2sig.html}
Gnulib module: sig2str
+@mindex sig2str
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strcasecmp.html}
Gnulib module: strcase
+@mindex strcase
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in multibyte locales.
+@mindex mbscasecmp
Gnulib provides an alternative function @code{mbscasecmp} that does a case
insensitive comparison of character strings and that works in all locales.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strcat.html}
Gnulib module: string
+@mindex string
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in some multibyte
-locales. Gnulib provides an alternative function @code{mbschr} that works on
+locales.
+@mindex mbschr
+Gnulib provides an alternative function @code{mbschr} that works on
character strings in all locales.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strcpy.html}
Gnulib module: string
+@mindex string
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strcspn.html}
Gnulib module: strcspn
+@mindex strcspn
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in multibyte locales.
+@mindex mbscspn
Gnulib provides an alternative function @code{mbscspn} that works on character
strings in all locales.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strdup.html}
Gnulib module: strdup or strdup-posix
+@mindex strdup
+@mindex strdup-posix
Portability problems fixed by either Gnulib module @code{strdup} or @code{strdup-posix}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strerror.html}
Gnulib module: strerror
+@mindex strerror
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: strerror_r-posix
+@mindex strerror_r-posix
Portability problems fixed by Gnulib:
@itemize
@itemize
@end itemize
+@mindex xstrerror
Note: Gnulib has a module @code{xstrerror}, with the property that
@code{xstrerror (NULL, errnum)} returns the value of @code{strerror_r}
as a freshly allocated string.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strfmon_l.html}
Gnulib module: strfmon_l
+@mindex strfmon_l
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strftime.html}
Gnulib module: strftime-fixes
+@mindex strftime-fixes
Portability problems fixed by Gnulib:
@itemize
zones supported by GNU or specified by POSIX@. @xref{tzset}.
@end itemize
+@mindex nstrftime
Extension: Gnulib offers a module @samp{nstrftime} that provides an
@code{nstrftime} function with various GNU extensions.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strncasecmp.html}
Gnulib module: strcase
+@mindex strcase
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in multibyte locales.
+@mindex mbsncasecmp
+@mindex mbspcasecmp
Gnulib provides alternative functions @code{mbsncasecmp} and @code{mbspcasecmp}
that do a case insensitive comparison of character strings and that work in all
locales.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strncat.html}
Gnulib module: strncat
+@mindex strncat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strncpy.html}
Gnulib module: string
+@mindex string
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strndup.html}
Gnulib module: strndup
+@mindex strndup
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strnlen.html}
Gnulib module: strnlen
+@mindex strnlen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strpbrk.html}
Gnulib module: strpbrk
+@mindex strpbrk
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in multibyte locales.
+@mindex mbspbrk
Gnulib provides an alternative function @code{mbspbrk} that works on character
strings in all locales.
@end itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-strptime-3.html}
Gnulib module: strptime
+@mindex strptime
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in some multibyte
-locales. Gnulib provides an alternative function @code{mbsrchr} that works
+locales.
+@mindex mbsrchr
+Gnulib provides an alternative function @code{mbsrchr} that works
on character strings in all locales.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strsignal.html}
Gnulib module: strsignal
+@mindex strsignal
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in multibyte locales.
+@mindex mbsspn
Gnulib provides an alternative function @code{mbsspn} that works on character
strings in all locales.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strstr.html}
Gnulib module: strstr or strstr-simple
+@mindex strstr
+@mindex strstr-simple
Portability problems fixed by either Gnulib module @code{strstr-simple}
or @code{strstr}:
@itemize
@item
This function cannot work correctly on character strings in most multibyte
-locales. Gnulib provides an alternative function @code{mbsstr} that works
+locales.
+@mindex mbsstr
+Gnulib provides an alternative function @code{mbsstr} that works
on character strings in all locales.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtod.html}
Gnulib module: strtod or strtod-obsolete
+@mindex strtod
+@mindex strtod-obsolete
Portability problems fixed by either Gnulib module @code{strtod} or @code{strtod-obsolete}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtof.html}
Gnulib module: strtof
+@mindex strtof
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoimax.html}
Gnulib module: strtoimax
+@mindex strtoimax
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtok_r.html}
Gnulib module: strtok_r
+@mindex strtok_r
Portability problems fixed by Gnulib:
@itemize
@itemize
@item
This function cannot work correctly on character strings in multibyte locales.
+@mindex mbstok_r
Gnulib provides an alternative function @code{mbstok_r} that works on character
strings in all locales.
@end itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtol.html}
Gnulib module: strtol
+@mindex strtol
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtold.html}
Gnulib module: strtold
+@mindex strtold
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoll.html}
Gnulib module: strtoll
+@mindex strtoll
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoul.html}
Gnulib module: strtoul
+@mindex strtoul
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoull.html}
Gnulib module: strtoull
+@mindex strtoull
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoumax.html}
Gnulib module: strtoumax
+@mindex strtoumax
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/symlink.html}
Gnulib module: symlink
+@mindex symlink
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/symlinkat.html}
Gnulib module: symlinkat
+@mindex symlinkat
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-system-3.html}
Gnulib module: system-posix
+@mindex system-posix
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tan.html}
Gnulib module: tan
+@mindex tan
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tanf.html}
Gnulib module: tanf
+@mindex tanf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tanh.html}
Gnulib module: tanh
+@mindex tanh
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tanhf.html}
Gnulib module: tanhf
+@mindex tanhf
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tanl.html}
Gnulib module: tanl
+@mindex tanl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tcgetsid.html}
Gnulib module: tcgetsid
+@mindex tcgetsid
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tdelete.html}
Gnulib module: tsearch
+@mindex tsearch
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tfind.html}
Gnulib module: tsearch
+@mindex tsearch
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: thrd
+@mindex thrd
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/time.html}
Gnulib module: time
+@mindex time
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: timegm
+@mindex timegm
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/timer_create.html}
Gnulib module: timer-time
+@mindex timer-time
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/timer_delete.html}
Gnulib module: timer-time
+@mindex timer-time
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/timer_gettime.html}
Gnulib module: timer-time
+@mindex timer-time
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/timer_settime.html}
Gnulib module: timer-time
+@mindex timer-time
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/times.html}
Gnulib module: times
+@mindex times
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/timespec_get.html}
Gnulib module: timespec_get
+@mindex timespec_get
Portability problems fixed by Gnulib:
@itemize
ISO C23 specification:@* @url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf} section 7.29.2.7
Gnulib module: timespec_getres
+@mindex timespec_getres
Portability problems fixed by Gnulib:
@itemize
1 nanosecond regardless of the actual clock resolution.
@end itemize
+@mindex gettime-res
The Gnulib module @code{gettime-res} is a partial substitute; it implements
the @code{TIME_UTC} functionality of @code{timespec_getres}.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tmpfile.html}
Gnulib module: tmpfile
+@mindex tmpfile
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tolower.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_tolower
+@mindex c-ctype
This function operates in a locale independent way and returns a different
value than the argument only for uppercase ASCII characters. It is provided
by the Gnulib module @samp{c-ctype}.
@item towlower
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32tolower
+@mindex c32tolower
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32tolower}.
@item uc_tolower
+@mindex unicase/tolower
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unicase/tolower}.
@end table
@end itemize
Gnulib module: totalorder
+@mindex totalorder
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: totalorderf
+@mindex totalorderf
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: totalorderl
+@mindex totalorderl
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: totalordermag
+@mindex totalordermag
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: totalordermagf
+@mindex totalordermagf
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: totalordermagl
+@mindex totalordermagl
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/toupper.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
@table @code
@item c_toupper
+@mindex c-ctype
This function operates in a locale independent way and returns a different
value than the argument only for lowercase ASCII characters. It is provided
by the Gnulib module @samp{c-ctype}.
@item towupper
+@mindex wctype
This function operates in a locale dependent way, on wide characters. In
order to use it, you first have to convert from multibyte to wide characters,
using the @code{mbrtowc} function. It is provided by the Gnulib module
@samp{wctype}.
@item c32toupper
+@mindex c32toupper
This function operates in a locale dependent way, on 32-bit wide characters.
In order to use it, you first have to convert from multibyte to 32-bit wide
characters, using the @code{mbrtoc32} function. It is provided by the
Gnulib module @samp{c32toupper}.
@item uc_toupper
+@mindex unicase/toupper
This function operates in a locale independent way, on Unicode characters.
It is provided by the Gnulib module @samp{unicase/toupper}.
@end table
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/towctrans.html}
Gnulib module: towctrans
+@mindex towctrans
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32_apply_mapping
However, the Gnulib function @code{c32_apply_mapping}, provided by Gnulib
module @code{c32_apply_mapping}, operates on 32-bit wide characters and
therefore does not have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/towlower.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32tolower
However, the Gnulib function @code{c32tolower}, provided by Gnulib module
@code{c32tolower}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/towupper.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32toupper
However, the Gnulib function @code{c32toupper}, provided by Gnulib module
@code{c32toupper}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/trunc.html}
Gnulib module: trunc or trunc-ieee
+@mindex trunc
+@mindex trunc-ieee
Portability problems fixed by either Gnulib module @code{trunc} or @code{trunc-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/truncate.html}
Gnulib module: truncate
+@mindex truncate
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/truncf.html}
Gnulib module: truncf or truncf-ieee
+@mindex truncf
+@mindex truncf-ieee
Portability problems fixed by either Gnulib module @code{truncf} or @code{truncf-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/truncl.html}
Gnulib module: truncl or truncl-ieee
+@mindex truncl
+@mindex truncl-ieee
Portability problems fixed by either Gnulib module @code{truncl} or @code{truncl-ieee}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tsearch.html}
Gnulib module: tsearch
+@mindex tsearch
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: tss
+@mindex tss
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: tss
+@mindex tss
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: tss
+@mindex tss
Portability problems fixed by Gnulib:
@itemize
@end ifnotinfo
Gnulib module: tss
+@mindex tss
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/ttyname_r.html}
Gnulib module: ttyname_r
+@mindex ttyname_r
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/twalk.html}
Gnulib module: tsearch
+@mindex tsearch
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tzname.html}
Gnulib module: tzname
+@mindex tzname
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/tzset.html}
Gnulib module: tzset
+@mindex tzset
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/uname.html}
Gnulib module: uname
+@mindex uname
Portability problems fixed by Gnulib:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-unlink-3.html}
Gnulib module: unlink
+@mindex unlink
Portability problems fixed by Gnulib:
@itemize
has the ability to unlink directories, POSIX requires that
@code{unlink("symlink-to-dir/")} remove @file{dir} and leave
@file{symlink-to-dir} dangling; this behavior is counter-intuitive.
+@mindex unlinkdir
The gnulib module @code{unlinkdir} can help determine whether code must be
cautious of unlinking directories.
@item
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/unlinkat.html}
Gnulib module: unlinkat
+@mindex unlinkat
Portability problems fixed by Gnulib:
@itemize
has the ability to unlink directories, POSIX requires that
@code{unlinkat(fd,"symlink-to-dir/",0)} remove @file{dir} and leave
@file{symlink-to-dir} dangling; this behavior is counter-intuitive.
+@mindex unlinkdir
The gnulib module @code{unlinkdir} can help determine whether code must be
cautious of unlinking directories.
@item
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/unlockpt.html}
Gnulib module: unlockpt
+@mindex unlockpt
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/unsetenv.html}
Gnulib module: unsetenv
+@mindex unsetenv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/utimensat.html}
Gnulib module: utimensat
+@mindex utimensat
Portability problems fixed by Gnulib:
@itemize
Cygwin 1.5.x.
@end itemize
+@mindex fdutimensat
The gnulib module @code{fdutimensat} provides a similar interface.
FreeBSD 7.2, Solaris 9.
@item
This function cannot set full timestamp resolution. In particular,
-some platforms incorrectly round rather than truncate. Use
-@code{utimensat(AT_FDCWD,file,times,0)}, or the gnulib module @code{utimens},
+some platforms incorrectly round rather than truncate.
+@mindex utimens
+Use @code{utimensat(AT_FDCWD,file,times,0)},
+or the gnulib module @code{utimens},
instead.
@item
On file systems mounted with the @code{noatime} attribute,
On OS/2, this function does not work on an opened file.
@end itemize
+@mindex utimens
Extension: Gnulib provides a module @samp{utimens} that works around these
problems and allows to set the time with nanosecond resolution (as far as
supported by the file system).
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/va_copy.html}
Gnulib module: stdarg
+@mindex stdarg
Portability problems fixed by Gnulib:
@itemize
@end itemize
Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu
+@mindex vasprintf
+@mindex vasprintf-posix
+@mindex vasprintf-gnu
Portability problems fixed by either Gnulib module @code{vasprintf} or @code{vasprintf-posix} or @code{vasprintf-gnu}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/vdprintf.html}
Gnulib module: vdprintf or vdprintf-posix or vdprintf-gnu
+@mindex vdprintf
+@mindex vdprintf-posix
+@mindex vdprintf-gnu
Portability problems fixed by either Gnulib module @code{vdprintf} or @code{vdprintf-posix} or @code{vdprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{vdprintf-posix} or @code{vdprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/vfprintf.html}
Gnulib module: vfprintf-posix or vfprintf-gnu or stdio, nonblocking, sigpipe
+@mindex vfprintf-posix
+@mindex vfprintf-gnu
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by either Gnulib module @code{vfprintf-posix} or @code{vfprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{vfprintf-posix} or @code{vfprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vfscanf.html}
Gnulib module: vfscanf, nonblocking
+@mindex vfscanf
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{vfscanf}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/vprintf.html}
Gnulib module: vprintf-posix or vprintf-gnu or stdio, nonblocking, sigpipe
+@mindex vprintf-posix
+@mindex vprintf-gnu
+@mindex stdio
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by either Gnulib module @code{vprintf-posix} or @code{vprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{vprintf-posix} or @code{vprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vscanf.html}
Gnulib module: vscanf, nonblocking
+@mindex vscanf
+@mindex nonblocking
Portability problems fixed by Gnulib module @code{vscanf}, together with module @code{nonblocking}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/vsnprintf.html}
Gnulib module: vsnprintf or vsnprintf-posix or vsnprintf-gnu
+@mindex vsnprintf
+@mindex vsnprintf-posix
+@mindex vsnprintf-gnu
Portability problems fixed by either Gnulib module @code{vsnprintf} or @code{vsnprintf-posix} or @code{vsnprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{vsnprintf-posix} or @code{vsnprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/vsprintf.html}
Gnulib module: vsprintf-posix or vsprintf-gnu
+@mindex vsprintf-posix
+@mindex vsprintf-gnu
Portability problems fixed by either Gnulib module @code{vsprintf-posix} or @code{vsprintf-gnu}:
@itemize
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.5, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
@end itemize
+@mindex printf-with-n-directive
Portability problems fixed by either Gnulib module @code{vsprintf-posix} or @code{vsprintf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
LSB specification:@* @url{https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-waitpid-3.html}
Gnulib module: waitpid
+@mindex waitpid
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcpcpy.html}
Gnulib module: wcpcpy
+@mindex wcpcpy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcpncpy.html}
Gnulib module: wcpncpy
+@mindex wcpncpy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcrtomb.html}
Gnulib module: wcrtomb
+@mindex wcrtomb
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32rtomb
However, the ISO C11 function @code{c32rtomb}, provided by Gnulib module
@code{c32rtomb}, operates on 32-bit wide characters and therefore does not have
this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscasecmp.html}
Gnulib module: wcscasecmp
+@mindex wcscasecmp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscat.html}
Gnulib module: wcscat
+@mindex wcscat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcschr.html}
Gnulib module: wcschr
+@mindex wcschr
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscmp.html}
Gnulib module: wcscmp
+@mindex wcscmp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscoll.html}
Gnulib module: wcscoll
+@mindex wcscoll
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscpy.html}
Gnulib module: wcscpy
+@mindex wcscpy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscspn.html}
Gnulib module: wcscspn
+@mindex wcscspn
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsdup.html}
Gnulib module: wcsdup
+@mindex wcsdup
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsftime.html}
Gnulib module: wcsftime
+@mindex wcsftime
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcslen.html}
Gnulib module: wcslen
+@mindex wcslen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncasecmp.html}
Gnulib module: wcsncasecmp
+@mindex wcsncasecmp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncat.html}
Gnulib module: wcsncat
+@mindex wcsncat
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncmp.html}
Gnulib module: wcsncmp
+@mindex wcsncmp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncpy.html}
Gnulib module: wcsncpy
+@mindex wcsncpy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsnlen.html}
Gnulib module: wcsnlen
+@mindex wcsnlen
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsnrtombs.html}
Gnulib module: wcsnrtombs
+@mindex wcsnrtombs
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32snrtombs
However, the Gnulib function @code{c32snrtombs}, provided by Gnulib module
@code{c32snrtombs}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcspbrk.html}
Gnulib module: wcspbrk
+@mindex wcspbrk
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsrchr.html}
Gnulib module: wcsrchr
+@mindex wcsrchr
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsrtombs.html}
Gnulib module: wcsrtombs
+@mindex wcsrtombs
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32srtombs
However, the Gnulib function @code{c32srtombs}, provided by Gnulib module
@code{c32srtombs}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsspn.html}
Gnulib module: wcsspn
+@mindex wcsspn
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsstr.html}
Gnulib module: wcsstr or wcsstr-simple
+@mindex wcsstr
+@mindex wcsstr-simple
Portability problems fixed by either Gnulib module @code{wcsstr-simple} or @code{wcsstr}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcstok.html}
Gnulib module: wcstok
+@mindex wcstok
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32stombs
However, the Gnulib function @code{c32stombs}, provided by Gnulib module
@code{c32stombs}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcswidth.html}
Gnulib module: wcswidth
+@mindex wcswidth
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32swidth
However, the Gnulib function @code{c32swidth}, provided by Gnulib module
@code{c32swidth}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsxfrm.html}
Gnulib module: wcsxfrm
+@mindex wcsxfrm
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wctob.html}
Gnulib module: wctob
+@mindex wctob
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and
therefore cannot accommodate all Unicode characters.
+@mindex c32tob
However, the Gnulib function @code{c32tob}, provided by Gnulib module
@code{c32tob}, operates on 32-bit wide characters and therefore does not have
this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wctomb.html}
Gnulib module: wctomb
+@mindex wctomb
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wctrans.html}
Gnulib module: wctrans
+@mindex wctrans
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32_get_mapping
However, the Gnulib function @code{c32_get_mapping}, provided by Gnulib module
@code{c32_get_mapping}, operates on 32-bit wide characters and therefore does
not have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wctype.html}
Gnulib module: wctype
+@mindex wctype
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32_get_type_test
However, the Gnulib function @code{c32_get_type_test}, provided by Gnulib
module @code{c32_get_type_test}, operates on 32-bit wide characters and
therefore does not have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcwidth.html}
Gnulib module: wcwidth
+@mindex wcwidth
Portability problems fixed by Gnulib:
@itemize
@item
On Windows and 32-bit AIX platforms, @code{wchar_t} is a 16-bit type and therefore cannot
accommodate all Unicode characters.
+@mindex c32width
However, the Gnulib function @code{c32width}, provided by Gnulib module
@code{c32width}, operates on 32-bit wide characters and therefore does not
have this limitation.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wmemchr.html}
Gnulib module: wmemchr
+@mindex wmemchr
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wmemcmp.html}
Gnulib module: wmemcmp
+@mindex wmemcmp
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wmemcpy.html}
Gnulib module: wmemcpy
+@mindex wmemcpy
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wmemmove.html}
Gnulib module: wmemmove
+@mindex wmemmove
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/wmemset.html}
Gnulib module: wmemset
+@mindex wmemset
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/write.html}
Gnulib module: write, nonblocking, sigpipe
+@mindex write
+@mindex nonblocking
+@mindex sigpipe
Portability problems fixed by Gnulib module @code{write}:
@itemize
macOS 14.
@end itemize
+@mindex safe-write
For handling @code{EINTR}, Gnulib provides a module @samp{safe-write} with a
function @code{safe_write}.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/y0.html}
Gnulib module: y0
+@mindex y0
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/y1.html}
Gnulib module: y1
+@mindex y1
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/yn.html}
Gnulib module: yn
+@mindex yn
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/arpa_inet.h.html}
Gnulib module: arpa_inet
+@mindex arpa_inet
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/assert.h.html}
Gnulib module: assert-h
+@mindex assert-h
+@mindex assert
+@mindex verify
See also the Gnulib modules @code{assert} and @code{verify}.
Portability problems fixed by Gnulib:
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/ctype.h.html}
Gnulib module: ctype
+@mindex ctype
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/dirent.h.html}
Gnulib module: dirent
+@mindex dirent
Portability problems fixed by Gnulib:
@itemize
@code{PDP_ENDIAN}.
Gnulib module: endian
+@mindex endian
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/errno.h.html}
Gnulib module: errno
+@mindex errno
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/fcntl.h.html}
Gnulib module: fcntl-h
+@mindex fcntl-h
Portability problems fixed by Gnulib:
@itemize
which is generally safe.
@item
-@samp{O_NONBLOCK} is not defined on some platforms. If the
-@samp{nonblocking} module is in use, gnulib guarantees a working
+@samp{O_NONBLOCK} is not defined on some platforms.
+@mindex nonblocking
+If the @samp{nonblocking} module is in use, gnulib guarantees a working
non-zero value; otherwise, the gnulib replacement is 0.
@item
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/fenv.h.html}
Gnulib module: fenv
+@mindex fenv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/float.h.html}
Gnulib module: float
+@mindex float
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/fnmatch.h.html}
Gnulib module: fnmatch-h, fnmatch-gnu
+@mindex fnmatch-h
+@mindex fnmatch-gnu
Portability problems fixed by Gnulib module @code{fnmatch-h}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/glob.h.html}
Gnulib module: glob-h
+@mindex glob-h
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/iconv.h.html}
Gnulib module: iconv
+@mindex iconv
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/inttypes.h.html}
Gnulib module: inttypes
+@mindex inttypes
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/langinfo.h.html}
Gnulib module: langinfo
+@mindex langinfo
Portability problems fixed by Gnulib:
@itemize
mingw, MSVC 14.
@end itemize
+@mindex dirname
The Gnulib module @code{dirname} provides similar API, with functions
@code{base_name} and @code{dir_name} that also work with Windows file names.
@end itemize
Gnulib module: gettext
+@mindex gettext
Portability problems fixed by Gnulib, if GNU gettext is installed:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/limits.h.html}
Gnulib module: limits-h or gethostname
+@mindex limits-h
+@mindex gethostname
Portability problems fixed by Gnulib module @code{limits-h}:
@itemize
32-bit glibc 2.24 (on some architectures), Cygwin 2.5.2.
@end itemize
+@mindex pathmax
For @code{PATH_MAX}, Gnulib provides a module @code{pathmax} with a header
file @code{"pathmax.h"}. It defines @code{PATH_MAX} to a constant on
platforms with a file name length limit.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/locale.h.html}
Gnulib module: locale
+@mindex locale
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/math.h.html}
Gnulib module: math
+@mindex math
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/monetary.h.html}
Gnulib module: monetary
+@mindex monetary
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/net_if.h.html}
Gnulib module: net_if
+@mindex net_if
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/netdb.h.html}
Gnulib module: netdb
+@mindex netdb
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/netinet_in.h.html}
Gnulib module: netinet_in
+@mindex netinet_in
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/poll.h.html}
Gnulib module: poll-h
+@mindex poll-h
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/pthread.h.html}
Gnulib module: pthread-h
+@mindex pthread-h
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/regex.h.html}
Gnulib module: regex
+@mindex regex
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sched.h.html}
Gnulib module: sched
+@mindex sched
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/search.h.html}
Gnulib module: search
+@mindex search
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/signal.h.html}
Gnulib module: signal-h
+@mindex signal-h
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/spawn.h.html}
Gnulib module: spawn
+@mindex spawn
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdalign.h.html}
Gnulib module: alignasof
+@mindex alignasof
Portability problems fixed by Gnulib:
@itemize
@code{alignas} or @code{alignof}. For example, GCC versions before 13 do not
support these keywords, which were standardized by C23.
On C23 and later platforms, @code{<stdalign.h>} has no effect and need
-not be included. (Gnulib-using code should not include
+not be included.
+@mindex stdalign
+(Gnulib-using code should not include
@code{<stdalign.h>} without also employing Gnulib's now-deprecated
@code{stdalign} module.)
@item
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdarg.h.html}
Gnulib module: stdarg
+@mindex stdarg
Portability problems fixed by Gnulib:
@itemize
section 7.18.
Gnulib module: stdbit
+@mindex stdbit
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdbool.h.html}
Gnulib module: stdbool-c99
+@mindex stdbool-c99
+@mindex stdbool
The @code{stdbool-c99} module is present only for programs that
formerly used the old @code{stdbool} module for C99 compatibility,
section 7.20.
Gnulib module: stdckdint
+@mindex stdckdint
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stddef.h.html}
Gnulib module: stddef
+@mindex stddef
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdint.h.html}
Gnulib module: stdint
+@mindex stdint
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdio.h.html}
Gnulib module: stdio
+@mindex stdio
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdlib.h.html}
Gnulib module: stdlib, system-posix
+@mindex stdlib
+@mindex system-posix
Portability problems fixed by the Gnulib module @code{stdlib}:
@itemize
The definition of the type @code{once_flag}, of the macro
@code{ONCE_FLAG_INIT}, and the declaration of the function
@code{call_once}, that are required by ISO C 23, are not provided.
+@mindex call_once
To get them, import Gnulib module @code{call_once} and include
@code{<threads.h>} rather than @code{<stdlib.h>}.
@item
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/stdnoreturn.h.html}
Gnulib module: stdnoreturn
+@mindex stdnoreturn
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/string.h.html}
Gnulib module: string
+@mindex string
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/strings.h.html}
Gnulib module: strings
+@mindex strings
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_msg.h.html}
Gnulib module: sys_msg
+@mindex sys_msg
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_resource.h.html}
Gnulib module: sys_resource
+@mindex sys_resource
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_select.h.html}
Gnulib module: sys_select
+@mindex sys_select
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_sem.h.html}
Gnulib module: sys_sem
+@mindex sys_sem
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_shm.h.html}
Gnulib module: sys_shm
+@mindex sys_shm
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_socket.h.html}
Gnulib module: sys_socket
+@mindex sys_socket
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_stat.h.html}
Gnulib module: sys_stat
+@mindex sys_stat
Portability problems fixed by Gnulib module @code{sys_stat}:
@itemize
platforms.
@item
On some platforms, @code{struct stat} does not include @code{st_atim},
-@code{st_mtim}, or @code{st_ctim} members. Use the gnulib module
+@code{st_mtim}, or @code{st_ctim} members.
+@mindex stat-time
+Use the gnulib module
@samp{stat-time} for accessors to portably get at subsecond resolution.
@end itemize
+@mindex windows-stat-inodes
Portability problems fixed by Gnulib module @code{sys_stat}, together with module @code{windows-stat-inodes}:
@itemize
@item
@end itemize
@item
On some file systems, @code{st_size} contains bogus information for
-symlinks; use the Gnulib module @code{areadlink-with-size} for a
+symlinks;
+@mindex areadlink-with-size
+use the Gnulib module @code{areadlink-with-size} for a
better way to get symlink contents.
@end itemize
+@mindex same-inode
To partially work around porting problems with Microsoft Windows and OpenVMS,
you can use the Gnulib @code{same-inode} module to test whether two
@code{struct stat} objects are known to represent the same file.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_time.h.html}
Gnulib module: sys_time
+@mindex sys_time
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_times.h.html}
Gnulib module: sys_times
+@mindex sys_times
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_types.h.html}
Gnulib module: sys_types
+@mindex sys_types
Portability problems fixed by Gnulib:
@itemize
glibc x32
@end itemize
+@mindex largefile
This module, together with the module @code{largefile}, also defines the type
@code{off_t} to a 64-bit integer type on some platforms:
mingw, MSVC 14.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_uio.h.html}
Gnulib module: sys_uio
+@mindex sys_uio
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_un.h.html}
Gnulib module: sys_un
+@mindex sys_un
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_utsname.h.html}
Gnulib module: sys_utsname
+@mindex sys_utsname
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/sys_wait.h.html}
Gnulib module: sys_wait
+@mindex sys_wait
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/termios.h.html}
Gnulib module: termios
+@mindex termios
Portability problems fixed by Gnulib:
@itemize
Defines the multithreading facility of ISO C11.
Gnulib module: threads-h
+@mindex threads-h
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/time.h.html}
Gnulib module: time-h
+@mindex time-h
Portability problems fixed by Gnulib:
@itemize
NetBSD 5.0.
@end itemize
+@mindex year2038
Portability problems fixed by the Gnulib module @code{year2038}:
@itemize
@item
@code{c32rtomb}.
Gnulib module: uchar or uchar-c23
+@mindex uchar
+@mindex uchar-c23
Portability problems fixed by either Gnulib module @code{uchar} or @code{uchar-c23}:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/unistd.h.html}
Gnulib module: unistd
+@mindex unistd
Portability problems fixed by Gnulib:
@itemize
POSIX.1-2017 specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/utime.h.html}
Gnulib module: utime-h
+@mindex utime-h
Portability problems fixed by Gnulib:
@itemize
timestamps up to the year 2106, by changing @code{ut_tv.tv_sec}'s type
to be a 32-bit unsigned integer.
@item
+@mindex year2038
+@mindex year2038-recommended
On some platforms, this header misbehaves if the @code{year2038} or
@code{year2038-recommended} modules are used and the program is
configured without the @option{--disable-year2038} option.
+@mindex readutmp
The @code{readutmp} module works around this problem:
glibc 2.38 on 32-bit platforms like x86 and ARM where @code{time_t}
was historically 32 bits.
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/wchar.h.html}
Gnulib module: wchar
+@mindex wchar
Portability problems fixed by Gnulib:
@itemize
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/wctype.h.html}
Gnulib module: wctype-h
+@mindex wctype-h
Portability problems fixed by Gnulib:
@itemize
Gnulib has two modules for retrieving the name of the currently executing
program: @code{progname} and @code{getprogname}.
-@findex progname
+@mindex progname
@vindex program_name
The @code{progname} module defines a variable @code{program_name}.
It contains the name of the currently executing program, on all platforms.
function be modified to invoke @code{set_program_name (argv[0])} as one
of its first actions.
+@mindex getprogname
@findex getprogname
The @code{getprogname} module defines a function @code{getprogname()}.
It returns the name of the currently executing program, on most platforms.
@cindex Quoting
@findex quote
@findex quotearg
+@mindex quote
+@mindex quotearg
Gnulib provides @samp{quote} and @samp{quotearg} modules to help with
quoting text, such as file names, in messages to the user. Here's an
possible to do the same thing with a hard link @emph{only} if the hard
link file is in the same directory as the real program.
+@mindex relocatable-prog
The @code{relocatable-prog} module aims to ease the process of making a
GNU program relocatable. It helps overcome two obstacles. First, it aids
with relocating the hard-coded references to absolute file names that
@enumerate
@item
+@mindex relocatable-lib
+@mindex relocatable-lib-lgpl
Import the @code{relocatable-prog} module. For libraries, use the
@code{relocatable-lib} or @code{relocatable-lib-lgpl} module, if
the libraries are independent. For installing multiple libraries,
not, so this feature should be used with some caution.
@item
+@mindex relocatable-script
If your package installs shell scripts, also import the
@code{relocatable-script} module. Then, near the beginning of each
shell script that your package installs, add the following:
that you need.
@item
+@mindex relocatable-perl
If your package installs Perl scripts, also import the
@code{relocatable-perl} module. Then, near the beginning of each
Perl script that your package installs, add the following:
@node Safe Allocation Macros
@section Safe Allocation Macros
+@mindex safe-alloc
The standard C library malloc/realloc/calloc/free APIs are prone to a
number of common coding errors. The @code{safe-alloc} module provides
macros that make it easier to avoid many of them. It still uses the
@c Written by Bruno Haible.
+@mindex stack-trace
+
Printing a stack trace
was traditionally seen as a feature of the debugging environment
and thus only implemented in the debuggers (@command{gdb} etc.).
either prints a stack trace without source file names and line numbers,
or prints nothing at all.
+@mindex abort-debug
Gnulib also provides a module @samp{abort-debug},
that overrides the @code{abort} function so that
it prints the stack trace of the current thread, before actually aborting.
@node stat-size
@section stat-size
+@mindex stat-size
The @code{stat-size} module provides a small number of macros
intended for interpreting the file size information in an instance of
@code{struct stat}.
in an array or as key or value of a hash table, one needs a type that
combines these two fields.
+@mindex string-desc
+@mindex xstring-desc
+@mindex string-desc-quotearg
The Gnulib modules @code{string-desc}, @code{xstring-desc}, and
@code{string-desc-quotearg} provide such a type. We call it a
``string descriptor'' and name it @code{string_desc_t}.
iteration, that is, from the string's end to start, is not provided,
as it is too hairy in general.
+@mindex mbiter
+@mindex mbiterf
+@mindex mbuiter
+@mindex mbuiterf
+@mindex mcel
@itemize
@item
The @code{mbiter} module iterates through a string whose length
@code{mbiter} family, and is more suitable for applications that do
not need the @code{mbiter} family's special features.
+@mindex mcel-prefer
The @code{mcel-prefer} module is like @code{mcel} except that it also
causes some other modules, such as @code{mbscasecmp}, to use
@code{mcel} rather than the @code{mbiter} family. This can be simpler
This table summarizes the API functions available for strings, in POSIX
and in Gnulib.
+@mindex c-strtod
+@mindex c-strtold
+@mindex c32snrtombs
+@mindex c32srtombs
+@mindex c32stombs
+@mindex c32swidth
+@mindex mbscasecmp
+@mindex mbscasestr
+@mindex mbschr
+@mindex mbscspn
+@mindex mbslen
+@mindex mbsncasecmp
+@mindex mbsnlen
+@mindex mbsnrtoc32s
+@mindex mbsnrtowcs
+@mindex mbspbrk
+@mindex mbspcasecmp
+@mindex mbsrchr
+@mindex mbsrtoc32s
+@mindex mbsrtowcs
+@mindex mbssep
+@mindex mbsspn
+@mindex mbsstr
+@mindex mbstoc32s
+@mindex mbstok_r
+@mindex mbstowcs
+@mindex mbswidth
+@mindex stpcpy
+@mindex stpncpy
+@mindex strcase
+@mindex strcasestr
+@mindex strcspn
+@mindex strdup
+@mindex string-desc
+@mindex strncat
+@mindex strndup
+@mindex strnlen
+@mindex strpbrk
+@mindex strsep
+@mindex strstr
+@mindex strtod
+@mindex strtof
+@mindex strtoimax
+@mindex strtok_r
+@mindex strtol
+@mindex strtold
+@mindex strtoll
+@mindex strtoul
+@mindex strtoull
+@mindex strtoumax
+@mindex unicase/u32-casecmp
+@mindex unistr/u32-mbsnlen
+@mindex unistr/u32-stpcpy
+@mindex unistr/u32-stpncpy
+@mindex unistr/u32-strcat
+@mindex unistr/u32-strchr
+@mindex unistr/u32-strcmp
+@mindex unistr/u32-strcoll
+@mindex unistr/u32-strcpy
+@mindex unistr/u32-strcspn
+@mindex unistr/u32-strdup
+@mindex unistr/u32-strlen
+@mindex unistr/u32-strncat
+@mindex unistr/u32-strncmp
+@mindex unistr/u32-strncpy
+@mindex unistr/u32-strnlen
+@mindex unistr/u32-strpbrk
+@mindex unistr/u32-strrchr
+@mindex unistr/u32-strspn
+@mindex unistr/u32-strstr
+@mindex unistr/u32-strtok
+@mindex uniwidth/u32-strwidth
+@mindex wcpcpy
+@mindex wcpncpy
+@mindex wcscasecmp
+@mindex wcscat
+@mindex wcschr
+@mindex wcscmp
+@mindex wcscoll
+@mindex wcscpy
+@mindex wcscspn
+@mindex wcsdup
+@mindex wcslen
+@mindex wcsncasecmp
+@mindex wcsncat
+@mindex wcsncmp
+@mindex wcsncpy
+@mindex wcsnlen
+@mindex wcsnrtombs
+@mindex wcspbrk
+@mindex wcsrchr
+@mindex wcsrtombs
+@mindex wcsspn
+@mindex wcsstr
+@mindex wcstok
+@mindex wcswidth
+@mindex wcsxfrm
+
@multitable @columnfractions .17 .17 .17 .17 .16 .16
@headitem unibyte strings only
@tab assume C locale
@code{*c32*} functions are optimized so that on glibc systems they
immediately redirect to the corresponding @code{*wc*} functions.
+@mindex uchar-c23
Gnulib implements the ISO C 23 semantics of @code{char32_t} when you
import the @samp{uchar-c23} module. Without this module, it implements
only the ISO C 11 semantics; the effect is that on some platforms
@node Reading multibyte strings
@subsubsection Reading multibyte strings
+@mindex mbfile
If you want to process (possibly multibyte) characters while reading
them from a @code{FILE *} stream, without reading them into a string
first, the @code{mbfile} module is made for this purpose.
This table summarizes the API functions available for characters, in
POSIX and in Gnulib.
+@mindex c-ctype
+@mindex c32isalnum
+@mindex c32isalpha
+@mindex c32isblank
+@mindex c32iscntrl
+@mindex c32isdigit
+@mindex c32isgraph
+@mindex c32islower
+@mindex c32isprint
+@mindex c32ispunct
+@mindex c32isspace
+@mindex c32isupper
+@mindex c32isxdigit
+@mindex c32tolower
+@mindex c32toupper
+@mindex c32width
+@mindex c32_apply_mapping
+@mindex c32_apply_type_test
+@mindex c32_get_mapping
+@mindex c32_get_type_test
+@mindex c32tolower
+@mindex c32toupper
+@mindex isblank
+@mindex iswblank
+@mindex iswctype
+@mindex iswdigit
+@mindex iswpunct
+@mindex iswxdigit
+@mindex mbchar
+@mindex towctrans
+@mindex wctrans
+@mindex wctype
+@mindex wcwidth
+
@multitable @columnfractions .2 .2 .2 .2 .2
@headitem unibyte character
@tab assume C locale
@node Profiling of program phases
@section Profiling of program phases
+@mindex timevar
The module @samp{timevar} provides a simple self-profiling facility,
based on timers.
@node Using valgrind automatically
@subsection Using valgrind without developer intervention
+@mindex valgrind-tests
The @code{valgrind-tests} module searches for Valgrind at configure time
and declares the @code{LOG_VALGRIND} automake variable for use with
automake's @code{LOG_COMPILER}.
@c copy of the license is at <https://www.gnu.org/licenses/fdl-1.3.en.html>.
@cindex VCS To ChangeLog
-@findex vcs-to-changelog
+@mindex vcs-to-changelog
Gnulib provides the @samp{vcs-to-changelog} module to generate an output
similar to the GNU ChangeLog format from metadata of source control software
such as git. Here's an example of using @samp{vcs-to-changelog}:
@node warnings
@section warnings
+@mindex warnings
+@mindex manywarnings
The @code{warnings} module allows to regularly build a package with more
GCC warnings than the default warnings emitted by GCC. It is often used
indirectly through the @code{manywarnings} module
@subsection Getaddrinfo and WINVER
+@mindex getaddrinfo
This was written for the @code{getaddrinfo} module, but may be applicable to
other functions too.
@node Inode numbers on Windows
@section Inode numbers on Windows
+@mindex windows-stat-inodes
The module @samp{windows-stat-inodes} ensures that,
on native Windows platforms, @code{struct stat} contains
@code{st_dev}, @code{st_ino} fields that are able to distinguish
@node Precise file timestamps on Windows
@section Precise file timestamps on Windows
+@mindex windows-stat-timespec
The module @samp{windows-stat-timespec} ensures that,
on native Windows platforms, @code{struct stat} contains
@code{st_atim}, @code{st_mtim}, @code{st_ctim} fields of type
@node Closed standard fds
@section Handling closed standard file descriptors
-@cindex xstdopen
+@mindex xstdopen
@cindex stdopen
-@cindex dirent-safer
-@cindex fcntl-safer
-@cindex fopen-safer
-@cindex freopen-safer
-@cindex openat-safer
-@cindex pipe2-safer
-@cindex popen-safer
-@cindex stdlib-safer
-@cindex tmpfile-safer
-@cindex unistd-safer
+@mindex dirent-safer
+@mindex fcntl-safer
+@mindex fopen-safer
+@mindex freopen-safer
+@mindex openat-safer
+@mindex pipe2-safer
+@mindex popen-safer
+@mindex stdlib-safer
+@mindex tmpfile-safer
+@mindex unistd-safer
Usually, when a program gets invoked, its file descriptors
0 (for standard input), 1 (for standard output), and 2 (for standard error)
@url{https://en.wikipedia.org/wiki/Year_2038_problem, Year 2038
problem} for details.
+@mindex year2038
The Gnulib module @samp{year2038} fixes this problem on some
platforms, by making @code{time_t} wide enough to represent timestamps
after 2038. This has no effect on most current platforms, which have
the package links to other libraries whose user-facing ABIs still
require @code{time_t} to be 32-bit on your platform.
+@mindex year2038-recommended
The Gnulib module @samp{year2038-recommended} is like @samp{year2038},
except it by default rejects platforms where @code{time_t} cannot represent
timestamps after 2038. If this module is used and a 32-platform cannot support
you can use the @samp{year2038} module instead, to save builders
the trouble of configuring with @option{--disable-year2038}.
+@mindex largefile
If the Gnulib module @samp{largefile} is used but neither
@samp{year2038} nor @samp{year2038-recommended} is used,
@command{configure} will have an option @option{--enable-year2038}