This chapter describes which functions and function-like macros specified by
ISO C (including ISO TS 18661-1) or POSIX are substituted by Gnulib, which
portability pitfalls are fixed by Gnulib, and which (known) portability
problems are not worked around by Gnulib.
The notation “Gnulib module: —” means that Gnulib does not provide a
module providing a substitute for the function. When the list
“Portability problems not fixed by Gnulib” is empty, such a module is
not needed: No portability problems are known. Otherwise, it indicates
that such a module would be useful but is not available: No one so far
found this function important enough to contribute a substitute for it.
If you need this particular function, you may write to
<bug-gnulib at gnu dot org>.
This list of functions is sorted according to the header that declares them.
Next: Functions in <monetary.h>, Previous: Functions in <locale.h>, Up: ISO C and POSIX Function Substitutes [Contents][Index]
10.24 Functions in <math.h> ¶
Next: acosl, Previous: acoshf, Up: Functions in <math.h> [Contents][Index]
10.24.5 acoshl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/acoshl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: acospi, Previous: acoshl, Up: Functions in <math.h> [Contents][Index]
10.24.6 acosl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/acosl.html
Gnulib module: acosl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: acospif, Previous: acosl, Up: Functions in <math.h> [Contents][Index]
10.24.7 acospi ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.8
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: acospil, Previous: acospi, Up: Functions in <math.h> [Contents][Index]
10.24.8 acospif ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.8
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: asin, Previous: acospif, Up: Functions in <math.h> [Contents][Index]
10.24.9 acospil ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.8
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: asinl, Previous: asinhf, Up: Functions in <math.h> [Contents][Index]
10.24.14 asinhl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/asinhl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: asinpi, Previous: asinhl, Up: Functions in <math.h> [Contents][Index]
10.24.15 asinl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/asinl.html
Gnulib module: asinl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: asinpif, Previous: asinl, Up: Functions in <math.h> [Contents][Index]
10.24.16 asinpi ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.9
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: asinpil, Previous: asinpi, Up: Functions in <math.h> [Contents][Index]
10.24.17 asinpif ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.9
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: atan, Previous: asinpif, Up: Functions in <math.h> [Contents][Index]
10.24.18 asinpil ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.9
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: atan2pi, Previous: atan2f, Up: Functions in <math.h> [Contents][Index]
10.24.22 atan2l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/atan2l.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: atan2pif, Previous: atan2l, Up: Functions in <math.h> [Contents][Index]
10.24.23 atan2pi ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.11
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: atan2pil, Previous: atan2pi, Up: Functions in <math.h> [Contents][Index]
10.24.24 atan2pif ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.11
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: atanf, Previous: atan2pif, Up: Functions in <math.h> [Contents][Index]
10.24.25 atan2pil ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.11
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: atanl, Previous: atanhf, Up: Functions in <math.h> [Contents][Index]
10.24.29 atanhl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/atanhl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: atanpi, Previous: atanhl, Up: Functions in <math.h> [Contents][Index]
10.24.30 atanl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/atanl.html
Gnulib module: atanl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: atanpif, Previous: atanl, Up: Functions in <math.h> [Contents][Index]
10.24.31 atanpi ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.10
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: atanpil, Previous: atanpi, Up: Functions in <math.h> [Contents][Index]
10.24.32 atanpif ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.10
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: canonicalize, Previous: atanpif, Up: Functions in <math.h> [Contents][Index]
10.24.33 atanpil ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.10
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: canonicalizef, Previous: atanpil, Up: Functions in <math.h> [Contents][Index]
10.24.34 canonicalize ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: canonicalizel, Previous: canonicalize, Up: Functions in <math.h> [Contents][Index]
10.24.35 canonicalizef ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: cbrt, Previous: canonicalizef, Up: Functions in <math.h> [Contents][Index]
10.24.36 canonicalizel ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: ceil, Previous: cbrtf, Up: Functions in <math.h> [Contents][Index]
10.24.39 cbrtl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/cbrtl.html
Gnulib module: cbrtl or cbrtl-ieee
Portability problems fixed by either Gnulib module cbrtl or cbrtl-ieee
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
- This function produces grossly wrong results on some platforms:
OpenBSD 5.1/SPARC.
Portability problems fixed by Gnulib module cbrtl-ieee:
Portability problems not fixed by Gnulib:
Next: ceill, Previous: ceil, Up: Functions in <math.h> [Contents][Index]
10.24.41 ceilf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ceilf.html
Gnulib module: ceilf or ceilf-ieee
Portability problems fixed by either Gnulib module ceilf or ceilf-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems fixed by Gnulib module ceilf-ieee:
- This function returns a positive zero for an argument between −1 and 0
on some platforms:
macOS 10.5, AIX 7.1.
Portability problems not fixed by Gnulib:
Next: compoundn, Previous: ceilf, Up: Functions in <math.h> [Contents][Index]
10.24.42 ceill ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ceill.html
Gnulib module: ceill or ceill-ieee
Portability problems fixed by either Gnulib module ceill or ceill-ieee:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function returns a wrong result for small arguments on some platforms:
OpenBSD 5.6.
Portability problems fixed by Gnulib module ceill-ieee:
Portability problems not fixed by Gnulib:
Next: compoundnf, Previous: ceill, Up: Functions in <math.h> [Contents][Index]
10.24.43 compoundn ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.2
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: compoundnl, Previous: compoundn, Up: Functions in <math.h> [Contents][Index]
10.24.44 compoundnf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.2
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: copysign, Previous: compoundnf, Up: Functions in <math.h> [Contents][Index]
10.24.45 compoundnl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.2
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: cos, Previous: copysignf, Up: Functions in <math.h> [Contents][Index]
10.24.48 copysignl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/copysignl.html
Gnulib module: copysignl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
Portability problems not fixed by Gnulib:
Next: cosl, Previous: coshf, Up: Functions in <math.h> [Contents][Index]
10.24.53 coshl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/coshl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: cospi, Previous: coshl, Up: Functions in <math.h> [Contents][Index]
10.24.54 cosl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/cosl.html
Gnulib module: cosl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: cospif, Previous: cosl, Up: Functions in <math.h> [Contents][Index]
10.24.55 cospi ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.12
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: cospil, Previous: cospi, Up: Functions in <math.h> [Contents][Index]
10.24.56 cospif ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.12
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: daddl, Previous: cospif, Up: Functions in <math.h> [Contents][Index]
10.24.57 cospil ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.12
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: ddivl, Previous: cospil, Up: Functions in <math.h> [Contents][Index]
10.24.58 daddl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: dfmal, Previous: daddl, Up: Functions in <math.h> [Contents][Index]
10.24.59 ddivl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: dmull, Previous: ddivl, Up: Functions in <math.h> [Contents][Index]
10.24.60 dfmal ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.14.5
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: dsqrtl, Previous: dfmal, Up: Functions in <math.h> [Contents][Index]
10.24.61 dmull ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: dsubl, Previous: dmull, Up: Functions in <math.h> [Contents][Index]
10.24.62 dsqrtl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.14.6
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: erf, Previous: dsqrtl, Up: Functions in <math.h> [Contents][Index]
10.24.63 dsubl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: erff, Previous: erfcf, Up: Functions in <math.h> [Contents][Index]
10.24.67 erfcl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/erfcl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: exp, Previous: erff, Up: Functions in <math.h> [Contents][Index]
10.24.69 erfl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/erfl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: exp10f, Previous: exp, Up: Functions in <math.h> [Contents][Index]
10.24.71 exp10 ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.2
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14, Android.
Next: exp10l, Previous: exp10, Up: Functions in <math.h> [Contents][Index]
10.24.72 exp10f ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.2
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14, Android.
Next: exp10m1, Previous: exp10f, Up: Functions in <math.h> [Contents][Index]
10.24.73 exp10l ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.2
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14, Android.
Next: exp10m1f, Previous: exp10l, Up: Functions in <math.h> [Contents][Index]
10.24.74 exp10m1 ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.3
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: exp10m1l, Previous: exp10m1, Up: Functions in <math.h> [Contents][Index]
10.24.75 exp10m1f ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.3
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: exp2, Previous: exp10m1f, Up: Functions in <math.h> [Contents][Index]
10.24.76 exp10m1l ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.3
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: exp2m1, Previous: exp2f, Up: Functions in <math.h> [Contents][Index]
10.24.79 exp2l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/exp2l.html
Gnulib module: exp2l or exp2l-ieee
Portability problems fixed by either Gnulib module exp2l or exp2l-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
- This function returns Infinity instead of large finite values on some platforms:
NetBSD 10.0/i386.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0/x86_64.
Portability problems fixed by Gnulib module exp2l-ieee:
- This function returns a wrong value for a NaN argument on some platforms:
OpenBSD 4.9.
Portability problems not fixed by Gnulib:
Next: exp2m1f, Previous: exp2l, Up: Functions in <math.h> [Contents][Index]
10.24.80 exp2m1 ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.5
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: exp2m1l, Previous: exp2m1, Up: Functions in <math.h> [Contents][Index]
10.24.81 exp2m1f ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.5
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: expf, Previous: exp2m1f, Up: Functions in <math.h> [Contents][Index]
10.24.82 exp2m1l ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.5
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: expm1, Previous: expf, Up: Functions in <math.h> [Contents][Index]
10.24.84 expl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/expl.html
Gnulib module: expl or expl-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function returns 0.0 for all arguments on some platforms:
Haiku 2017.
- This function returns NaN for small operands on some platforms:
OpenBSD 5.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces results which are accurate to only 16 digits on some
platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x, NetBSD 10.0.
Portability problems not fixed by Gnulib:
Next: expm1l, Previous: expm1, Up: Functions in <math.h> [Contents][Index]
10.24.86 expm1f ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/expm1f.html
Gnulib module: expm1f or expm1f-ieee
Portability problems fixed by either Gnulib module expm1f or expm1f-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, mingw, MSVC 9.
Portability problems fixed by Gnulib module expm1f-ieee:
- This function returns a positive zero for a minus zero argument
on some platforms:
AIX 7.2.
Portability problems not fixed by Gnulib:
Next: fabs, Previous: expm1f, Up: Functions in <math.h> [Contents][Index]
10.24.87 expm1l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/expm1l.html
Gnulib module: expm1l or expm1l-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
- This function returns 0 instead of small positive values on some platforms:
NetBSD 10.0/i386.
- This function produces results which are accurate to only 16 digits on some
platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x, Mac OS X 10.5, NetBSD 10.0/x86_64.
Portability problems not fixed by Gnulib:
Next: faddl, Previous: fabsl, Up: Functions in <math.h> [Contents][Index]
10.24.91 fadd ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fdim, Previous: fadd, Up: Functions in <math.h> [Contents][Index]
10.24.92 faddl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fdiv, Previous: fdimf, Up: Functions in <math.h> [Contents][Index]
10.24.95 fdiml ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fdiml.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
Next: fdivl, Previous: fdiml, Up: Functions in <math.h> [Contents][Index]
10.24.96 fdiv ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: ffma, Previous: fdiv, Up: Functions in <math.h> [Contents][Index]
10.24.97 fdivl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: ffmal, Previous: fdivl, Up: Functions in <math.h> [Contents][Index]
10.24.98 ffma ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.14.5
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: floor, Previous: ffma, Up: Functions in <math.h> [Contents][Index]
10.24.99 ffmal ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.14.5
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaf, Previous: floorl, Up: Functions in <math.h> [Contents][Index]
10.24.103 fma ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fma.html
Gnulib module: fma or fma-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
- This function produces wrong results on some platforms:
glibc 2.43,
Mac OS X 10.5, FreeBSD 6.4/x86, NetBSD 8.0, OpenBSD 7.4/arm64, Cygwin 1.5, mingw.
Portability problems not fixed by Gnulib:
Next: fmal, Previous: fma, Up: Functions in <math.h> [Contents][Index]
10.24.104 fmaf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmaf.html
Gnulib module: fmaf or fmaf-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
- This function produces wrong results on some platforms:
glibc 2.11, Mac OS X 10.5, FreeBSD 6.4/x86, FreeBSD 12.2/arm, OpenBSD 7.4/arm64, Cygwin 1.5, mingw.
Portability problems not fixed by Gnulib:
- This function produces wrong results on some platforms:
musl libc/powerpc64le when emulated by QEMU 5.0.0.
Next: fmax, Previous: fmaf, Up: Functions in <math.h> [Contents][Index]
10.24.105 fmal ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmal.html
Gnulib module: fmal or fmal-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
- This function produces wrong results on some platforms:
glibc 2.17, macOS 13/x86_64, FreeBSD 6.4/x86, OpenBSD 7.4/arm64, mingw.
Portability problems not fixed by Gnulib:
Next: fmaximum_mag, Previous: fmaxf, Up: Functions in <math.h> [Contents][Index]
10.24.108 fmaximum ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.4
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_magf, Previous: fmaximum, Up: Functions in <math.h> [Contents][Index]
10.24.109 fmaximum_mag ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.6
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_magl, Previous: fmaximum_mag, Up: Functions in <math.h> [Contents][Index]
10.24.110 fmaximum_magf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.6
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_mag_num, Previous: fmaximum_magf, Up: Functions in <math.h> [Contents][Index]
10.24.111 fmaximum_magl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.6
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_mag_numf, Previous: fmaximum_magl, Up: Functions in <math.h> [Contents][Index]
10.24.112 fmaximum_mag_num ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.10
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_mag_numl, Previous: fmaximum_mag_num, Up: Functions in <math.h> [Contents][Index]
10.24.113 fmaximum_mag_numf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.10
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_num, Previous: fmaximum_mag_numf, Up: Functions in <math.h> [Contents][Index]
10.24.114 fmaximum_mag_numl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.10
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_numf, Previous: fmaximum_mag_numl, Up: Functions in <math.h> [Contents][Index]
10.24.115 fmaximum_num ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.8
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximum_numl, Previous: fmaximum_num, Up: Functions in <math.h> [Contents][Index]
10.24.116 fmaximum_numf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.8
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximumf, Previous: fmaximum_numf, Up: Functions in <math.h> [Contents][Index]
10.24.117 fmaximum_numl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.8
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaximuml, Previous: fmaximum_numl, Up: Functions in <math.h> [Contents][Index]
10.24.118 fmaximumf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.4
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaxl, Previous: fmaximumf, Up: Functions in <math.h> [Contents][Index]
10.24.119 fmaximuml ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.4
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fmaxmag, Previous: fmaximuml, Up: Functions in <math.h> [Contents][Index]
10.24.120 fmaxl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmaxl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
Next: fmaxmagf, Previous: fmaxl, Up: Functions in <math.h> [Contents][Index]
10.24.121 fmaxmag ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fmaxmagl, Previous: fmaxmag, Up: Functions in <math.h> [Contents][Index]
10.24.122 fmaxmagf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fmin, Previous: fmaxmagf, Up: Functions in <math.h> [Contents][Index]
10.24.123 fmaxmagl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fminimum_mag, Previous: fminf, Up: Functions in <math.h> [Contents][Index]
10.24.126 fminimum ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.5
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_magf, Previous: fminimum, Up: Functions in <math.h> [Contents][Index]
10.24.127 fminimum_mag ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.7
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_magl, Previous: fminimum_mag, Up: Functions in <math.h> [Contents][Index]
10.24.128 fminimum_magf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.7
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_mag_num, Previous: fminimum_magf, Up: Functions in <math.h> [Contents][Index]
10.24.129 fminimum_magl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.7
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_mag_numf, Previous: fminimum_magl, Up: Functions in <math.h> [Contents][Index]
10.24.130 fminimum_mag_num ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.11
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_mag_numl, Previous: fminimum_mag_num, Up: Functions in <math.h> [Contents][Index]
10.24.131 fminimum_mag_numf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.11
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_num, Previous: fminimum_mag_numf, Up: Functions in <math.h> [Contents][Index]
10.24.132 fminimum_mag_numl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.11
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_numf, Previous: fminimum_mag_numl, Up: Functions in <math.h> [Contents][Index]
10.24.133 fminimum_num ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.9
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimum_numl, Previous: fminimum_num, Up: Functions in <math.h> [Contents][Index]
10.24.134 fminimum_numf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.9
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimumf, Previous: fminimum_numf, Up: Functions in <math.h> [Contents][Index]
10.24.135 fminimum_numl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.9
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminimuml, Previous: fminimum_numl, Up: Functions in <math.h> [Contents][Index]
10.24.136 fminimumf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.5
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminl, Previous: fminimumf, Up: Functions in <math.h> [Contents][Index]
10.24.137 fminimuml ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.12.5
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fminmag, Previous: fminimuml, Up: Functions in <math.h> [Contents][Index]
10.24.138 fminl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fminl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
Next: fminmagf, Previous: fminl, Up: Functions in <math.h> [Contents][Index]
10.24.139 fminmag ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fminmagl, Previous: fminmag, Up: Functions in <math.h> [Contents][Index]
10.24.140 fminmagf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fmod, Previous: fminmagf, Up: Functions in <math.h> [Contents][Index]
10.24.141 fminmagl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fmodl, Previous: fmod, Up: Functions in <math.h> [Contents][Index]
10.24.143 fmodf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmodf.html
Gnulib module: fmodf or fmodf-ieee
Portability problems fixed by either Gnulib module fmodf or fmodf-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems fixed by Gnulib module fmodf-ieee:
- This function has problems when the first argument is minus zero on some
platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
Next: fmul, Previous: fmodf, Up: Functions in <math.h> [Contents][Index]
10.24.144 fmodl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmodl.html
Gnulib module: fmodl or fmodl-ieee
Portability problems fixed by either Gnulib module fmodl or fmodl-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function is not declared and does not work on some platforms:
AIX 5.1.
Portability problems fixed by Gnulib module fmodl-ieee:
- This function has problems when the first argument is minus zero on some
platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
Next: fmull, Previous: fmodl, Up: Functions in <math.h> [Contents][Index]
10.24.145 fmul ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fpclassify, Previous: fmul, Up: Functions in <math.h> [Contents][Index]
10.24.146 fmull ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: frexpl, Previous: frexp, Up: Functions in <math.h> [Contents][Index]
10.24.149 frexpf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/frexpf.html
Gnulib module: frexpf or frexpf-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function does not work on negative zero on some platforms:
mingw.
- This function does not work on infinite numbers on some platforms:
mingw.
Portability problems not fixed by Gnulib:
Next: fromfp, Previous: frexpf, Up: Functions in <math.h> [Contents][Index]
10.24.150 frexpl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/frexpl.html
Gnulib module: frexpl or frexpl-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function does not work on finite numbers on some platforms:
AIX 5.1, MSVC 14.
- This function does not work on denormalized numbers on some platforms:
macOS 10.13/i386.
- This function does not work on infinite numbers on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
Next: fromfpf, Previous: frexpl, Up: Functions in <math.h> [Contents][Index]
10.24.151 fromfp ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fromfpl, Previous: fromfp, Up: Functions in <math.h> [Contents][Index]
10.24.152 fromfpf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fromfpx, Previous: fromfpf, Up: Functions in <math.h> [Contents][Index]
10.24.153 fromfpl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fromfpxf, Previous: fromfpl, Up: Functions in <math.h> [Contents][Index]
10.24.154 fromfpx ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fromfpxl, Previous: fromfpx, Up: Functions in <math.h> [Contents][Index]
10.24.155 fromfpxf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fsqrt, Previous: fromfpxf, Up: Functions in <math.h> [Contents][Index]
10.24.156 fromfpxl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: fsqrtl, Previous: fromfpxl, Up: Functions in <math.h> [Contents][Index]
10.24.157 fsqrt ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.14.6
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fsub, Previous: fsqrt, Up: Functions in <math.h> [Contents][Index]
10.24.158 fsqrtl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.14.6
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.34, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: fsubl, Previous: fsqrtl, Up: Functions in <math.h> [Contents][Index]
10.24.159 fsub ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: getpayload, Previous: fsub, Up: Functions in <math.h> [Contents][Index]
10.24.160 fsubl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Misc-FP-Arithmetic.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.27, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: getpayloadf, Previous: fsubl, Up: Functions in <math.h> [Contents][Index]
10.24.161 getpayload ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.1
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: getpayload
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function returns a wrong result for non-NaN arguments on some platforms:
glibc 2.31.
Portability problems not fixed by Gnulib:
Next: getpayloadl, Previous: getpayload, Up: Functions in <math.h> [Contents][Index]
10.24.162 getpayloadf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.1
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: getpayloadf
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function returns a wrong result for non-NaN arguments on some platforms:
glibc 2.31.
Portability problems not fixed by Gnulib:
Next: hypot, Previous: getpayloadf, Up: Functions in <math.h> [Contents][Index]
10.24.163 getpayloadl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.1
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: getpayloadl
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function returns a wrong result for non-NaN arguments on some platforms:
glibc 2.31.
Portability problems not fixed by Gnulib:
Next: hypotl, Previous: hypot, Up: Functions in <math.h> [Contents][Index]
10.24.165 hypotf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/hypotf.html
Gnulib module: hypotf or hypotf-ieee
Portability problems fixed by either Gnulib module hypotf or hypotf-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 14.
- This function produces wrong values on some platforms:
NetBSD 5.1, OpenBSD 4.9.
Portability problems fixed by Gnulib module hypot-ieee:
- When the arguments are mixed NaN and Infinity, this function returns a wrong
value on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
Next: ilogb, Previous: hypotf, Up: Functions in <math.h> [Contents][Index]
10.24.166 hypotl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/hypotl.html
Gnulib module: hypotl or hypotl-ieee
Portability problems fixed by either Gnulib module hypotl or hypotl-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 14, Android 4.4.
- This function produces very imprecise results on some platforms:
NetBSD 10.0, OpenBSD 5.1/SPARC.
Portability problems fixed by Gnulib module hypotl-ieee:
- When the arguments are mixed NaN and Infinity, this function returns a wrong
value on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
Next: ilogbf, Previous: hypotl, Up: Functions in <math.h> [Contents][Index]
10.24.167 ilogb ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ilogb.html
Gnulib module: ilogb
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, MSVC 9.
- This function returns a wrong result for a zero argument on some platforms:
OpenBSD 6.7, AIX 5.1.
- This function returns a wrong result for denormalized arguments on some platforms:
Mac OS X 10.5 64-bit, AIX 7.1 64-bit.
- This function returns a wrong result for an infinite argument on some platforms:
NetBSD 7.1, OpenBSD 6.7.
- This function returns a wrong result for a NaN argument on some platforms:
NetBSD 7.1, OpenBSD 6.7.
Portability problems not fixed by Gnulib:
Next: isfinite, Previous: ilogbf, Up: Functions in <math.h> [Contents][Index]
10.24.169 ilogbl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ilogbl.html
Gnulib module: ilogbl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
- This function returns a wrong result for a zero argument on some platforms:
Cygwin 2.9.
- This function returns a wrong result for a NaN argument on some platforms:
Cygwin 3.4.x.
- This function returns a wrong result for denormalized arguments on some platforms:
AIX 7.1 64-bit, Haiku 2017.
Portability problems not fixed by Gnulib:
Next: isgreater, Previous: ilogbl, Up: Functions in <math.h> [Contents][Index]
10.24.170 isfinite ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/isfinite.html
Gnulib module: isfinite
Portability problems fixed by Gnulib:
- This macro is missing on some platforms:
macOS 14, OpenBSD 7.9, AIX 5.1, Solaris 11.4.
- This macro incorrectly yields true for some ‘double’ and for some
‘long double’ arguments, on some platforms:
Linux/ia64 (NaNs).
Portability problems not fixed by Gnulib:
- It is implementation-dependent whether
isfinite raises an
exception given a signaling NaN operand.
- This macro returns an unspecified result when given noncanonical values
such as unnormalized numbers, pseudo-denormals, pseudo-NaNs,
pseudo-Infinities, and pseudo-zeroes.
Next: isnormal, Previous: islessgreater, Up: Functions in <math.h> [Contents][Index]
10.24.177 isnan ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/isnan.html
Gnulib module: isnan
Portability problems fixed by Gnulib:
- This macro is missing on some platforms:
MSVC 9.
isnan was introduced with C99 and is thus commonly not present
on pre-C99 systems.
isnan is not a macro on some platforms:
Solaris 11.4.
- This macro does not work on some platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
- This macro returns an unspecified result when given noncanonical values
such as unnormalized numbers, pseudo-denormals, pseudo-NaNs,
pseudo-Infinities, and pseudo-zeroes.
Next: lgamma, Previous: ldexpf, Up: Functions in <math.h> [Contents][Index]
10.24.185 ldexpl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ldexpl.html
Gnulib module: ldexpl or ldexpl-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function has no prototype in
<math.h> on some platforms:
Mac OS X.
- This function does not work on finite numbers on some platforms:
AIX 5.1.
Portability problems not fixed by Gnulib:
Next: llogb, Previous: lgammaf, Up: Functions in <math.h> [Contents][Index]
10.24.188 lgammal ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/lgammal.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
Next: llogbf, Previous: lgammal, Up: Functions in <math.h> [Contents][Index]
10.24.189 llogb ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Exponents-and-Logarithms.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: llogbl, Previous: llogb, Up: Functions in <math.h> [Contents][Index]
10.24.190 llogbf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Exponents-and-Logarithms.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: llrint, Previous: llogbf, Up: Functions in <math.h> [Contents][Index]
10.24.191 llogbl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Exponents-and-Logarithms.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: llround, Previous: llrintf, Up: Functions in <math.h> [Contents][Index]
10.24.194 llrintl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/llrintl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.5.x, MSVC 9, Android 4.4.
Next: log, Previous: llroundf, Up: Functions in <math.h> [Contents][Index]
10.24.197 llroundl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/llroundl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
Next: log10l, Previous: log10, Up: Functions in <math.h> [Contents][Index]
10.24.200 log10f ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/log10f.html
Gnulib module: log10f or log10f-ieee
Portability problems fixed by either Gnulib module log10f or log10f-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems fixed by Gnulib module log10f-ieee:
- This function returns a wrong value for a negative argument on some platforms:
NetBSD 5.1.
Portability problems not fixed by Gnulib:
Next: log10p1, Previous: log10f, Up: Functions in <math.h> [Contents][Index]
10.24.201 log10l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/log10l.html
Gnulib module: log10l or log10l-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function is not declared and does not work on some platforms:
AIX 5.1.
- This function produces results which are accurate to only 16 digits on some
platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x, NetBSD 10.0.
Portability problems not fixed by Gnulib:
Next: log10p1f, Previous: log10l, Up: Functions in <math.h> [Contents][Index]
10.24.202 log10p1 ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.13
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: log10p1l, Previous: log10p1, Up: Functions in <math.h> [Contents][Index]
10.24.203 log10p1f ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.13
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: log1p, Previous: log10p1f, Up: Functions in <math.h> [Contents][Index]
10.24.204 log10p1l ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.13
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: log1pl, Previous: log1p, Up: Functions in <math.h> [Contents][Index]
10.24.206 log1pf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/log1pf.html
Gnulib module: log1pf or log1pf-ieee
Portability problems fixed by either Gnulib module log1pf or log1pf-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
Portability problems fixed by Gnulib module log1pf-ieee:
- This function has problems when the argument is minus zero on some platforms:
OpenBSD 4.9, AIX 7.1.
Portability problems not fixed by Gnulib:
Next: log2, Previous: log1pf, Up: Functions in <math.h> [Contents][Index]
10.24.207 log1pl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/log1pl.html
Gnulib module: log1pl or log1pl-ieee
Portability problems fixed by either Gnulib module log1pl or log1pl-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
- This function produces results which are accurate to only 16 digits on some
platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x, NetBSD 10.0.
Portability problems fixed by Gnulib module log1pl-ieee:
- This function has problems when the argument is minus zero on some platforms:
AIX 7.1.
Portability problems not fixed by Gnulib:
Next: log2f, Previous: log1pl, Up: Functions in <math.h> [Contents][Index]
10.24.208 log2 ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/log2.html
Gnulib module: log2 or log2-ieee
Portability problems fixed by either Gnulib module log2 or log2-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Solaris 9, MSVC 9, Android 4.2.
- This function is only provided as a macro on some platforms:
Cygwin 1.5.x.
- This function returns slightly wrong values for exact powers of 2 on some platforms:
Cygwin 1.7.9.
Portability problems fixed by Gnulib module log2-ieee:
- This function returns a wrong value for a negative argument on some platforms:
NetBSD 5.1, Solaris 10/x86_64.
Portability problems not fixed by Gnulib:
Next: log2l, Previous: log2, Up: Functions in <math.h> [Contents][Index]
10.24.209 log2f ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/log2f.html
Gnulib module: log2f or log2f-ieee
Portability problems fixed by either Gnulib module log2f or log2f-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Solaris 9, MSVC 9, Android 4.2.
- This function is only provided as a macro on some platforms:
Cygwin 1.5.x.
- This function returns slightly wrong values for exact powers of 2 on some platforms:
Cygwin 1.7.9.
Portability problems fixed by Gnulib module log2f-ieee:
- This function returns a wrong value for a negative argument on some platforms:
NetBSD 5.1, Solaris 10/x86_64.
Portability problems not fixed by Gnulib:
Next: log2p1, Previous: log2f, Up: Functions in <math.h> [Contents][Index]
10.24.210 log2l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/log2l.html
Gnulib module: log2l or log2l-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.2.
- This function produces results which are accurate to only 16 digits on some
platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x.
- This function returns Infinity for some large finite arguments on some platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x, NetBSD 10.0.
Portability problems not fixed by Gnulib:
Next: log2p1f, Previous: log2l, Up: Functions in <math.h> [Contents][Index]
10.24.211 log2p1 ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.16
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: log2p1l, Previous: log2p1, Up: Functions in <math.h> [Contents][Index]
10.24.212 log2p1f ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.16
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: logb, Previous: log2p1f, Up: Functions in <math.h> [Contents][Index]
10.24.213 log2p1l ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.16
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: logbf, Previous: log2p1l, Up: Functions in <math.h> [Contents][Index]
10.24.214 logb ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/logb.html
Gnulib module: logb or logb-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, MSVC 9.
- This function is missing a declaration on some platforms:
Cygwin 1.5.x.
- This function produces wrong results for subnormal numbers on some platforms:
glibc 2.17/ppc, glibc 2.7/sparc, glibc 2.7/hppa, Solaris 11.4, Cygwin 1.5.x.
Portability problems not fixed by Gnulib:
Next: logf, Previous: logbf, Up: Functions in <math.h> [Contents][Index]
10.24.216 logbl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/logbl.html
Gnulib module: logbl or logbl-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.2.
- This function goes into an endless loop for arguments such as
1.6810515715560467531313389086608763012990396724232e-4932L
on some platforms:
OpenBSD 7.3/mips64.
- This function produces wrong results for subnormal numbers on some platforms:
glibc 2.11/powerpc, glibc 2.7/sparc, glibc 2.7/hppa, Solaris 11.4,
glibc 2.23/powerpc64le.
Portability problems not fixed by Gnulib:
Next: logl, Previous: logbl, Up: Functions in <math.h> [Contents][Index]
10.24.217 logf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/logf.html
Gnulib module: logf or logf-ieee
Portability problems fixed by either Gnulib module logf or logf-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems fixed by Gnulib module logf-ieee:
- This function returns a wrong value for a negative argument on some platforms:
NetBSD 5.1.
Portability problems not fixed by Gnulib:
Next: logp1, Previous: logf, Up: Functions in <math.h> [Contents][Index]
10.24.218 logl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/logl.html
Gnulib module: logl or logl-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function returns wrong results on some platforms:
glibc 2.7 on Linux/SPARC64.
- This function produces results which are accurate to only 16 digits on some
platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x, NetBSD 10.0.
Portability problems not fixed by Gnulib:
Next: logp1f, Previous: logl, Up: Functions in <math.h> [Contents][Index]
10.24.219 logp1 ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.14
Gnulib module: logp1
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Portability problems not fixed by Gnulib:
Next: logp1l, Previous: logp1, Up: Functions in <math.h> [Contents][Index]
10.24.220 logp1f ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.14
Gnulib module: logp1f
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Portability problems not fixed by Gnulib:
Next: lrint, Previous: logp1f, Up: Functions in <math.h> [Contents][Index]
10.24.221 logp1l ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.6.14
Gnulib module: logp1l
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.39, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Portability problems not fixed by Gnulib:
Next: lround, Previous: lrintf, Up: Functions in <math.h> [Contents][Index]
10.24.224 lrintl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/lrintl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.5.x, MSVC 9, Android 4.4.
Next: math_errhandling, Previous: lroundf, Up: Functions in <math.h> [Contents][Index]
10.24.227 lroundl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/lroundl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
Next: modf, Previous: lroundl, Up: Functions in <math.h> [Contents][Index]
10.24.228 math_errhandling ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.1
Documentation:
man math_error
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This macro is missing on some platforms:
NetBSD 10.0, mingw.
- This macro does not describe the error behaviour
of elementary arithmetic operations (+, -, *, /)
and of mathematical operations for which the compiler emits inline code
(such as
sqrt on some CPUs).
- This macro does not describe the error behaviour of functions
such as
strtod.
- For mathematical operations in general, it is a safer bet to look
at the exceptions set in the floating-point environment
(by calling
feclearexcept (FE_ALL_EXCEPT) before the operation
and fetestexcept after the operation),
regardless of math_errhandling.
Next: modfl, Previous: modf, Up: Functions in <math.h> [Contents][Index]
10.24.230 modff ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/modff.html
Gnulib module: modff or modff-ieee
Portability problems fixed by either Gnulib module modff or modff-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11.
- This function is only defined as a buggy macro with arguments on some platforms:
MSVC 14.
Portability problems fixed by Gnulib module modff-ieee:
- This function has problems with a NaN argument on some platforms:
NetBSD 5.1, OpenBSD 7.9, Solaris 9, Cygwin.
- This function has problems with infinite arguments on some platforms:
mingw with MSVCRT.
Portability problems not fixed by Gnulib:
Next: nan, Previous: modff, Up: Functions in <math.h> [Contents][Index]
10.24.231 modfl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/modfl.html
Gnulib module: modfl or modfl-ieee
Portability problems fixed by either Gnulib module modfl or modfl-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces wrong results on some platforms:
NetBSD 10.0/arm64.
Portability problems fixed by Gnulib module modfl-ieee:
- This function has problems with infinite arguments on some platforms:
mingw.
Portability problems not fixed by Gnulib:
Next: nearbyint, Previous: nanf, Up: Functions in <math.h> [Contents][Index]
10.24.234 nanl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/nanl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 3.1.
Next: nextafter, Previous: nearbyintf, Up: Functions in <math.h> [Contents][Index]
10.24.237 nearbyintl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/nearbyintl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
Next: nextdown, Previous: nextafterf, Up: Functions in <math.h> [Contents][Index]
10.24.240 nextafterl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/nextafterl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
Next: nextdownf, Previous: nextafterl, Up: Functions in <math.h> [Contents][Index]
10.24.241 nextdown ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.23, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: nextdownl, Previous: nextdown, Up: Functions in <math.h> [Contents][Index]
10.24.242 nextdownf ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.23, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: nexttoward, Previous: nextdownf, Up: Functions in <math.h> [Contents][Index]
10.24.243 nextdownl ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.23, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: nexttowardf, Previous: nextdownl, Up: Functions in <math.h> [Contents][Index]
10.24.244 nexttoward ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/nexttoward.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.2.
Next: nexttowardl, Previous: nexttoward, Up: Functions in <math.h> [Contents][Index]
10.24.245 nexttowardf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/nexttowardf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9.
Next: nextup, Previous: nexttowardf, Up: Functions in <math.h> [Contents][Index]
10.24.246 nexttowardl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/nexttowardl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 8.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 9, Android 4.2.
Next: nextupf, Previous: nexttowardl, Up: Functions in <math.h> [Contents][Index]
10.24.247 nextup ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.23, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: nextupl, Previous: nextup, Up: Functions in <math.h> [Contents][Index]
10.24.248 nextupf ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.23, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: pow, Previous: nextupf, Up: Functions in <math.h> [Contents][Index]
10.24.249 nextupl ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.23, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: pown, Previous: powf, Up: Functions in <math.h> [Contents][Index]
10.24.252 powl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/powl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: pownf, Previous: powl, Up: Functions in <math.h> [Contents][Index]
10.24.253 pown ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.6
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: pownl, Previous: pown, Up: Functions in <math.h> [Contents][Index]
10.24.254 pownf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.6
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: powr, Previous: pownf, Up: Functions in <math.h> [Contents][Index]
10.24.255 pownl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.6
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: powrf, Previous: pownl, Up: Functions in <math.h> [Contents][Index]
10.24.256 powr ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.7
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: powrl, Previous: powr, Up: Functions in <math.h> [Contents][Index]
10.24.257 powrf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.7
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: remainder, Previous: powrf, Up: Functions in <math.h> [Contents][Index]
10.24.258 powrl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.7
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: remainderf, Previous: powrl, Up: Functions in <math.h> [Contents][Index]
10.24.259 remainder ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/remainder.html
Gnulib module: remainder or remainder-ieee
Portability problems fixed by either Gnulib module remainder or remainder-ieee:
- This function is missing on some platforms:
MSVC 9.
Portability problems fixed by Gnulib module remainder-ieee:
Portability problems not fixed by Gnulib:
Next: remainderl, Previous: remainder, Up: Functions in <math.h> [Contents][Index]
10.24.260 remainderf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/remainderf.html
Gnulib module: remainderf or remainderf-ieee
Portability problems fixed by either Gnulib module remainderf or remainderf-ieee:
- This function is missing on some platforms:
Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
Portability problems fixed by Gnulib module remainderf-ieee:
Portability problems not fixed by Gnulib:
Next: remquo, Previous: remainderf, Up: Functions in <math.h> [Contents][Index]
10.24.261 remainderl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/remainderl.html
Gnulib module: remainderl or remainderl-ieee
Portability problems fixed by either Gnulib module remainderl or remainderl-ieee:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
- This function returns completely wrong values on some platforms:
OpenBSD 5.1/SPARC.
- This function produces results which are accurate to only 16 digits on some
platforms:
musl libc 1.2.2/arm64, musl libc 1.2.2/s390x, NetBSD 10.0.
Portability problems fixed by Gnulib module remainderl-ieee:
Portability problems not fixed by Gnulib:
Next: rint, Previous: remquof, Up: Functions in <math.h> [Contents][Index]
10.24.264 remquol ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/remquol.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
Next: rootn, Previous: rintf, Up: Functions in <math.h> [Contents][Index]
10.24.267 rintl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/rintl.html
Gnulib module: rintl or rintl-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.5.x, MSVC 9, Android 4.4.
- This function produces wrong results for negative numbers on some platforms:
NetBSD 8.0.
Portability problems not fixed by Gnulib:
Next: rootnf, Previous: rintl, Up: Functions in <math.h> [Contents][Index]
10.24.268 rootn ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.8
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: rootnl, Previous: rootn, Up: Functions in <math.h> [Contents][Index]
10.24.269 rootnf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.8
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: round, Previous: rootnf, Up: Functions in <math.h> [Contents][Index]
10.24.270 rootnl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.8
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: roundeven, Previous: rootnl, Up: Functions in <math.h> [Contents][Index]
10.24.271 round ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/round.html
Gnulib module: round or round-ieee
Portability problems fixed by either Gnulib module round or round-ieee:
- This function is missing on some platforms:
FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Solaris 9, MSVC 9.
- This function is not declared on some platforms:
glibc 2.8.
- This functions returns a wrong result for x = 1/2 - 2^-54
on some platforms:
NetBSD 3.0, AIX 7.1, mingw with MSVCRT.
Portability problems fixed by Gnulib module round-ieee:
- This function returns a positive zero for an argument between −0.5 and 0
on some platforms:
AIX 7.1.
Portability problems not fixed by Gnulib:
Next: roundevenf, Previous: round, Up: Functions in <math.h> [Contents][Index]
10.24.272 roundeven ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: roundevenl, Previous: roundeven, Up: Functions in <math.h> [Contents][Index]
10.24.273 roundevenf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: roundf, Previous: roundevenf, Up: Functions in <math.h> [Contents][Index]
10.24.274 roundevenl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: roundl, Previous: roundevenl, Up: Functions in <math.h> [Contents][Index]
10.24.275 roundf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/roundf.html
Gnulib module: roundf or roundf-ieee
Portability problems fixed by either Gnulib module roundf or roundf-ieee:
- This function is missing on some platforms:
FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
- This function is not declared on some platforms:
glibc 2.8.
- This functions returns a wrong result for x = 1/2 - 2^-25
on some platforms:
mingw with MSVCRT.
Portability problems fixed by Gnulib module roundf-ieee:
- This function returns a positive zero for an argument between −0.5 and 0
on some platforms:
AIX 7.1.
Portability problems not fixed by Gnulib:
Next: rsqrt, Previous: roundf, Up: Functions in <math.h> [Contents][Index]
10.24.276 roundl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/roundl.html
Gnulib module: roundl or roundl-ieee
Portability problems fixed by either Gnulib module roundl or roundl-ieee:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
- This function is not declared on some platforms:
glibc 2.8.
Portability problems fixed by Gnulib module roundl-ieee:
- This function returns a positive zero for an argument between −0.5 and 0
on some platforms:
AIX 7.1.
Portability problems not fixed by Gnulib:
Next: rsqrtf, Previous: roundl, Up: Functions in <math.h> [Contents][Index]
10.24.277 rsqrt ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.9
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: rsqrtl, Previous: rsqrt, Up: Functions in <math.h> [Contents][Index]
10.24.278 rsqrtf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.9
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: scalbln, Previous: rsqrtf, Up: Functions in <math.h> [Contents][Index]
10.24.279 rsqrtl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.7.9
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.41, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: scalbn, Previous: scalblnf, Up: Functions in <math.h> [Contents][Index]
10.24.282 scalblnl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/scalblnl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 9.0.
Next: setpayload, Previous: scalbnf, Up: Functions in <math.h> [Contents][Index]
10.24.285 scalbnl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/scalbnl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
Next: setpayloadf, Previous: scalbnl, Up: Functions in <math.h> [Contents][Index]
10.24.286 setpayload ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.2
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: setpayload
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Portability problems not fixed by Gnulib:
Next: setpayloadl, Previous: setpayload, Up: Functions in <math.h> [Contents][Index]
10.24.287 setpayloadf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.2
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: setpayloadf
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Portability problems not fixed by Gnulib:
Next: setpayloadsig, Previous: setpayloadf, Up: Functions in <math.h> [Contents][Index]
10.24.288 setpayloadl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.2
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: setpayloadl
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Portability problems not fixed by Gnulib:
Next: setpayloadsigf, Previous: setpayloadl, Up: Functions in <math.h> [Contents][Index]
10.24.289 setpayloadsig ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.3
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: setpayloadsig
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Portability problems not fixed by Gnulib:
Next: setpayloadsigl, Previous: setpayloadsig, Up: Functions in <math.h> [Contents][Index]
10.24.290 setpayloadsigf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.3
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: setpayloadsigf
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Portability problems not fixed by Gnulib:
Next: signbit, Previous: setpayloadsigf, Up: Functions in <math.h> [Contents][Index]
10.24.291 setpayloadsigl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.13.3
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Bit-Twiddling.html.
Gnulib module: setpayloadsigl
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Portability problems not fixed by Gnulib:
Next: sinl, Previous: sinhf, Up: Functions in <math.h> [Contents][Index]
10.24.298 sinhl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sinhl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: sinpi, Previous: sinhl, Up: Functions in <math.h> [Contents][Index]
10.24.299 sinl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sinl.html
Gnulib module: sinl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function returns a value that is larger than the argument,
for some positive arguments,
on some platforms:
NetBSD 10.0.
Portability problems not fixed by Gnulib:
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: sinpif, Previous: sinl, Up: Functions in <math.h> [Contents][Index]
10.24.300 sinpi ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.13
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: sinpil, Previous: sinpi, Up: Functions in <math.h> [Contents][Index]
10.24.301 sinpif ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.13
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: sqrt, Previous: sinpif, Up: Functions in <math.h> [Contents][Index]
10.24.302 sinpil ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.13
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: tan, Previous: sqrtf, Up: Functions in <math.h> [Contents][Index]
10.24.305 sqrtl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sqrtl.html
Gnulib module: sqrtl or sqrtl-ieee
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces very imprecise results on some platforms:
OpenBSD 5.1/SPARC.
Portability problems not fixed by Gnulib:
Next: tanl, Previous: tanhf, Up: Functions in <math.h> [Contents][Index]
10.24.310 tanhl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/tanhl.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: tanpi, Previous: tanhl, Up: Functions in <math.h> [Contents][Index]
10.24.311 tanl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/tanl.html
Gnulib module: tanl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, Android 4.4.
- This function is only defined as a macro with arguments on some platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
- This function produces results which are accurate to only 16 digits on some
platforms:
NetBSD 10.0.
Next: tanpif, Previous: tanl, Up: Functions in <math.h> [Contents][Index]
10.24.312 tanpi ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.14
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: tanpil, Previous: tanpi, Up: Functions in <math.h> [Contents][Index]
10.24.313 tanpif ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.14
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: tgamma, Previous: tanpif, Up: Functions in <math.h> [Contents][Index]
10.24.314 tanpil ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.12.4.14
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-C23 platforms:
glibc 2.40, macOS 14, FreeBSD 13.4, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android.
Next: totalorder, Previous: tgammaf, Up: Functions in <math.h> [Contents][Index]
10.24.317 tgammal ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/tgammal.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 6.0, NetBSD 9.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
Next: totalorderf, Previous: tgammal, Up: Functions in <math.h> [Contents][Index]
10.24.318 totalorder ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.12.1
Documentation:
Gnulib module: totalorder
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function has a different signature on some platforms:
glibc 2.30.
Portability problems not fixed by Gnulib:
- This function treats signalling NaNs incorrectly on some platforms:
glibc 2.35/sh4.
Next: totalorderl, Previous: totalorder, Up: Functions in <math.h> [Contents][Index]
10.24.319 totalorderf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.12.1
Documentation:
Gnulib module: totalorderf
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function has a different signature on some platforms:
glibc 2.30.
Portability problems not fixed by Gnulib:
- This function treats signalling NaNs incorrectly on some platforms:
glibc 2.35/sh4.
Next: totalordermag, Previous: totalorderf, Up: Functions in <math.h> [Contents][Index]
10.24.320 totalorderl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.12.1
Documentation:
Gnulib module: totalorderl
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function has a different signature on some platforms:
glibc 2.30.
Portability problems not fixed by Gnulib:
- This function treats signalling NaNs incorrectly on some platforms:
glibc 2.35/sh4.
Next: totalordermagf, Previous: totalorderl, Up: Functions in <math.h> [Contents][Index]
10.24.321 totalordermag ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.12.2
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Comparison-Functions.html.
Gnulib module: totalordermag
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function has a different signature on some platforms:
glibc 2.30.
Portability problems not fixed by Gnulib:
Next: totalordermagl, Previous: totalordermag, Up: Functions in <math.h> [Contents][Index]
10.24.322 totalordermagf ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.12.2
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Comparison-Functions.html.
Gnulib module: totalordermagf
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function has a different signature on some platforms:
glibc 2.30.
Portability problems not fixed by Gnulib:
Next: trunc, Previous: totalordermagf, Up: Functions in <math.h> [Contents][Index]
10.24.323 totalordermagl ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section F.10.12.2
Documentation:
https://www.gnu.org/software/libc/manual/html_node/FP-Comparison-Functions.html.
Gnulib module: totalordermagl
Portability problems fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function has a different signature on some platforms:
glibc 2.30.
Portability problems not fixed by Gnulib:
Next: truncl, Previous: trunc, Up: Functions in <math.h> [Contents][Index]
10.24.325 truncf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/truncf.html
Gnulib module: truncf or truncf-ieee
Portability problems fixed by either Gnulib module truncf or truncf-ieee:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
- This function is not declared (without
-D_GNU_SOURCE) on some platforms:
glibc 2.8.
Portability problems fixed by Gnulib module truncf-ieee:
Portability problems not fixed by Gnulib:
Next: ufromfp, Previous: truncf, Up: Functions in <math.h> [Contents][Index]
10.24.326 truncl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/truncl.html
Gnulib module: truncl or truncl-ieee
Portability problems fixed by either Gnulib module truncl or truncl-ieee:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9.
- This function is not declared (without
-D_GNU_SOURCE) on some platforms:
glibc 2.8.
Portability problems fixed by Gnulib module truncl-ieee:
Portability problems not fixed by Gnulib:
Next: ufromfpf, Previous: truncl, Up: Functions in <math.h> [Contents][Index]
10.24.327 ufromfp ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: ufromfpl, Previous: ufromfp, Up: Functions in <math.h> [Contents][Index]
10.24.328 ufromfpf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: ufromfpx, Previous: ufromfpf, Up: Functions in <math.h> [Contents][Index]
10.24.329 ufromfpl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: ufromfpxf, Previous: ufromfpl, Up: Functions in <math.h> [Contents][Index]
10.24.330 ufromfpx ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: ufromfpxl, Previous: ufromfpx, Up: Functions in <math.h> [Contents][Index]
10.24.331 ufromfpxf ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: y0, Previous: ufromfpxf, Up: Functions in <math.h> [Contents][Index]
10.24.332 ufromfpxl ¶
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Rounding-Functions.html.
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: Functions in <pwd.h>, Previous: Functions in <poll.h>, Up: ISO C and POSIX Function Substitutes [Contents][Index]
10.33 Functions in <pthread.h> ¶
Next: pthread_barrier_init, Previous: pthread_attr_setstacksize, Up: Functions in <pthread.h> [Contents][Index]
10.33.20 pthread_barrier_destroy ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_barrier_destroy.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 6.0.
Next: pthread_barrier_wait, Previous: pthread_barrier_destroy, Up: Functions in <pthread.h> [Contents][Index]
10.33.21 pthread_barrier_init ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_barrier_init.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 6.0.
Next: pthread_barrierattr_destroy, Previous: pthread_barrier_init, Up: Functions in <pthread.h> [Contents][Index]
10.33.22 pthread_barrier_wait ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_barrier_wait.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 6.0.
Next: pthread_barrierattr_getpshared, Previous: pthread_barrier_wait, Up: Functions in <pthread.h> [Contents][Index]
10.33.23 pthread_barrierattr_destroy ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_barrierattr_destroy.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 6.0.
Next: pthread_barrierattr_init, Previous: pthread_barrierattr_destroy, Up: Functions in <pthread.h> [Contents][Index]
10.33.24 pthread_barrierattr_getpshared ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_barrierattr_getpshared.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.2, macOS 14, FreeBSD 5.2.1, NetBSD 10.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 6.0.
Next: pthread_barrierattr_setpshared, Previous: pthread_barrierattr_getpshared, Up: Functions in <pthread.h> [Contents][Index]
10.33.25 pthread_barrierattr_init ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_barrierattr_init.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 6.0.
Next: pthread_cancel, Previous: pthread_barrierattr_init, Up: Functions in <pthread.h> [Contents][Index]
10.33.26 pthread_barrierattr_setpshared ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_barrierattr_setpshared.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, NetBSD 10.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 6.0.
Next: pthread_cleanup_push, Previous: pthread_cancel, Up: Functions in <pthread.h> [Contents][Index]
10.33.28 pthread_cleanup_pop ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cleanup_pop.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, macOS 14, NetBSD 10.0, Minix 3.1.8, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: pthread_cond_broadcast, Previous: pthread_cleanup_pop, Up: Functions in <pthread.h> [Contents][Index]
10.33.29 pthread_cleanup_push ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cleanup_push.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, macOS 14, NetBSD 10.0, Minix 3.1.8, HP-UX 11, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: pthread_cond_destroy, Previous: pthread_cond_broadcast, Up: Functions in <pthread.h> [Contents][Index]
10.33.31 pthread_cond_clockwait ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_cond_clockwait.html
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 3.2.x, mingw, MSVC 14, Android API level 29.
Next: pthread_condattr_getpshared, Previous: pthread_condattr_destroy, Up: Functions in <pthread.h> [Contents][Index]
10.33.38 pthread_condattr_getclock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_condattr_getclock.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.2, macOS 14, FreeBSD 5.2.1, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 4.4.
Next: pthread_condattr_setpshared, Previous: pthread_condattr_init, Up: Functions in <pthread.h> [Contents][Index]
10.33.41 pthread_condattr_setclock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_condattr_setclock.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.2, macOS 14, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 4.4.
Next: pthread_detach, Previous: pthread_condattr_setpshared, Up: Functions in <pthread.h> [Contents][Index]
10.33.43 pthread_create ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_create.html
Gnulib module: pthread-thread
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, mingw, MSVC 14.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
- This function is only defined as an inline function on some platforms:
HP-UX 11.11.
Portability problems not fixed by Gnulib:
- On Linux/glibc platforms before the advent of NPTL in 2003, signals could only
be sent to one particular thread. In POSIX, signals are sent to the entire
process and executed by any thread of the process that happens to have the
particular signal currently unblocked.
Next: pthread_getschedparam, Previous: pthread_exit, Up: Functions in <pthread.h> [Contents][Index]
10.33.47 pthread_getcpuclockid ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_getcpuclockid.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 6.0, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 1.7.9, mingw, MSVC 14.
Next: pthread_mutex_consistent, Previous: pthread_key_delete, Up: Functions in <pthread.h> [Contents][Index]
10.33.53 pthread_mutex_clocklock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_clocklock.html
Documentation: —
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 3.2.x, mingw, MSVC 14, Android API level 29.
Next: pthread_mutex_destroy, Previous: pthread_mutex_clocklock, Up: Functions in <pthread.h> [Contents][Index]
10.33.54 pthread_mutex_consistent ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_consistent.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.11, macOS 14, FreeBSD 6.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: pthread_mutex_trylock, Previous: pthread_mutex_setprioceiling, Up: Functions in <pthread.h> [Contents][Index]
10.33.60 pthread_mutex_timedlock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutex_timedlock.html
Gnulib module: pthread_mutex_timedlock
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, NetBSD 7.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 4.4.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
Portability problems not fixed by Gnulib:
Next: pthread_mutexattr_gettype, Previous: pthread_mutexattr_getpshared, Up: Functions in <pthread.h> [Contents][Index]
10.33.67 pthread_mutexattr_getrobust ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_getrobust.html
Gnulib module: pthread-mutex
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.11, macOS 14, FreeBSD 6.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
But the provided replacement is just a dummy.
Portability problems not fixed by Gnulib:
Next: pthread_mutexattr_settype, Previous: pthread_mutexattr_setpshared, Up: Functions in <pthread.h> [Contents][Index]
10.33.73 pthread_mutexattr_setrobust ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_mutexattr_setrobust.html
Gnulib module: pthread-mutex
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.11, macOS 14, FreeBSD 6.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
But the provided replacement is just a dummy.
Portability problems not fixed by Gnulib:
Next: pthread_rwlock_clockwrlock, Previous: pthread_once, Up: Functions in <pthread.h> [Contents][Index]
10.33.76 pthread_rwlock_clockrdlock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_clockrdlock.html
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 3.2.x, mingw, MSVC 14, Android API level 29.
Next: pthread_rwlock_destroy, Previous: pthread_rwlock_clockrdlock, Up: Functions in <pthread.h> [Contents][Index]
10.33.77 pthread_rwlock_clockwrlock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_clockwrlock.html
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 3.2.x, mingw, MSVC 14, Android API level 29.
Next: pthread_rwlock_timedrdlock, Previous: pthread_rwlock_init, Up: Functions in <pthread.h> [Contents][Index]
10.33.80 pthread_rwlock_rdlock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_rdlock.html
Gnulib module: pthread-rwlock
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, mingw, MSVC 14, Android 4.3.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
- This function prefers readers to writers (meaning, when this function is
called on an rwlock that is already taken by one or more readers, and
another writer is already waiting to take it, this function may return
successfully immediately) – a behaviour that may lead to writer starvation –
on some platforms:
glibc 2.42.
Portability problems not fixed by Gnulib:
Next: pthread_rwlock_timedwrlock, Previous: pthread_rwlock_rdlock, Up: Functions in <pthread.h> [Contents][Index]
10.33.81 pthread_rwlock_timedrdlock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_timedrdlock.html
Gnulib module: pthread-rwlock
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 4.3.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
- This function prefers readers to writers (meaning, when this function is
called on an rwlock that is already taken by one or more readers, and
another writer is already waiting to take it, this function may return
successfully immediately) – a behaviour that may lead to writer starvation –
on some platforms:
glibc 2.42.
Portability problems not fixed by Gnulib:
Next: pthread_rwlock_tryrdlock, Previous: pthread_rwlock_timedrdlock, Up: Functions in <pthread.h> [Contents][Index]
10.33.82 pthread_rwlock_timedwrlock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_rwlock_timedwrlock.html
Gnulib module: pthread-rwlock
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.x, mingw, MSVC 14, Android 4.3.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
Portability problems not fixed by Gnulib:
Next: pthread_setspecific, Previous: pthread_setschedparam, Up: Functions in <pthread.h> [Contents][Index]
10.33.95 pthread_setschedprio ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_setschedprio.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.3, macOS 14, FreeBSD 14.0, NetBSD 3.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 8.1.
Next: pthread_spin_init, Previous: pthread_setspecific, Up: Functions in <pthread.h> [Contents][Index]
10.33.97 pthread_spin_destroy ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_destroy.html
Gnulib module: pthread-spin
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 6.0.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
Portability problems not fixed by Gnulib:
Next: pthread_spin_lock, Previous: pthread_spin_destroy, Up: Functions in <pthread.h> [Contents][Index]
10.33.98 pthread_spin_init ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_init.html
Gnulib module: pthread-spin
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 6.0.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
Portability problems not fixed by Gnulib:
Next: pthread_spin_trylock, Previous: pthread_spin_init, Up: Functions in <pthread.h> [Contents][Index]
10.33.99 pthread_spin_lock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_lock.html
Gnulib module: pthread-spin
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 6.0.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
Portability problems not fixed by Gnulib:
Next: pthread_spin_unlock, Previous: pthread_spin_lock, Up: Functions in <pthread.h> [Contents][Index]
10.33.100 pthread_spin_trylock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_trylock.html
Gnulib module: pthread-spin
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 6.0.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
Portability problems not fixed by Gnulib:
Next: pthread_testcancel, Previous: pthread_spin_trylock, Up: Functions in <pthread.h> [Contents][Index]
10.33.101 pthread_spin_unlock ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pthread_spin_unlock.html
Gnulib module: pthread-spin
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin 1.7.9, mingw, MSVC 14, Android 6.0.
But the provided replacement is just a dummy on some of these platforms:
Minix 3.1.8.
Portability problems not fixed by Gnulib:
Next: Functions in <stdio.h>, Previous: Functions in <stdatomic.h>, Up: ISO C and POSIX Function Substitutes [Contents][Index]
10.44 Functions and generic functions in <stdbit.h> ¶
Next: stdc_bit_floor, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.1 stdc_bit_ceil ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.16.
Gnulib module: stdc_bit_ceil
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
- This macro returns a value of the wrong type
(e.g.
unsigned long long instead of unsigned long)
on some platforms:
Solaris 11 OpenIndiana.
Portability problems not fixed by Gnulib:
Next: stdc_bit_width, Previous: stdc_bit_ceil, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.2 stdc_bit_floor ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.15.
Gnulib module: stdc_bit_floor
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
- This macro returns a value of the wrong type
(e.g.
unsigned long long instead of unsigned long)
on some platforms:
Solaris 11 OpenIndiana.
Portability problems not fixed by Gnulib:
Next: stdc_count_ones, Previous: stdc_bit_floor, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.3 stdc_bit_width ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.14.
Gnulib module: stdc_bit_width
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_count_zeros, Previous: stdc_bit_width, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.4 stdc_count_ones ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.12.
Gnulib module: stdc_count_ones
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_first_leading_one, Previous: stdc_count_ones, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.5 stdc_count_zeros ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.11.
Gnulib module: stdc_count_zeros
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_first_leading_zero, Previous: stdc_count_zeros, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.6 stdc_first_leading_one ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.8.
Gnulib module: stdc_first_leading_one
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_first_trailing_one, Previous: stdc_first_leading_one, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.7 stdc_first_leading_zero ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.7.
Gnulib module: stdc_first_leading_zero
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_first_trailing_zero, Previous: stdc_first_leading_zero, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.8 stdc_first_trailing_one ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.10.
Gnulib module: stdc_first_trailing_one
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_has_single_bit, Previous: stdc_first_trailing_one, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.9 stdc_first_trailing_zero ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.9.
Gnulib module: stdc_first_trailing_zero
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_leading_ones, Previous: stdc_first_trailing_zero, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.10 stdc_has_single_bit ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.13.
Gnulib module: stdc_has_single_bit
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_leading_zeros, Previous: stdc_has_single_bit, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.11 stdc_leading_ones ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.4.
Gnulib module: stdc_leading_ones
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_bes8, Previous: stdc_leading_ones, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.12 stdc_leading_zeros ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.3.
Gnulib module: stdc_leading_zeros
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_bes16, Previous: stdc_leading_zeros, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.13 stdc_load8_aligned_bes8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_bes32, Previous: stdc_load8_aligned_bes8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.14 stdc_load8_aligned_bes16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_bes64, Previous: stdc_load8_aligned_bes16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.15 stdc_load8_aligned_bes32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_beu8, Previous: stdc_load8_aligned_bes32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.16 stdc_load8_aligned_bes64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_beu16, Previous: stdc_load8_aligned_bes64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.17 stdc_load8_aligned_beu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_beu32, Previous: stdc_load8_aligned_beu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.18 stdc_load8_aligned_beu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_beu64, Previous: stdc_load8_aligned_beu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.19 stdc_load8_aligned_beu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_les8, Previous: stdc_load8_aligned_beu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.20 stdc_load8_aligned_beu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_les16, Previous: stdc_load8_aligned_beu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.21 stdc_load8_aligned_les8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_les32, Previous: stdc_load8_aligned_les8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.22 stdc_load8_aligned_les16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_les64, Previous: stdc_load8_aligned_les16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.23 stdc_load8_aligned_les32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_leu8, Previous: stdc_load8_aligned_les32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.24 stdc_load8_aligned_les64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_leu16, Previous: stdc_load8_aligned_les64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.25 stdc_load8_aligned_leu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_leu32, Previous: stdc_load8_aligned_leu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.26 stdc_load8_aligned_leu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_aligned_leu64, Previous: stdc_load8_aligned_leu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.27 stdc_load8_aligned_leu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_bes8, Previous: stdc_load8_aligned_leu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.28 stdc_load8_aligned_leu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_bes16, Previous: stdc_load8_aligned_leu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.29 stdc_load8_bes8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_bes32, Previous: stdc_load8_bes8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.30 stdc_load8_bes16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_bes64, Previous: stdc_load8_bes16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.31 stdc_load8_bes32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_beu8, Previous: stdc_load8_bes32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.32 stdc_load8_bes64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_beu16, Previous: stdc_load8_bes64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.33 stdc_load8_beu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_beu32, Previous: stdc_load8_beu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.34 stdc_load8_beu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_beu64, Previous: stdc_load8_beu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.35 stdc_load8_beu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_les8, Previous: stdc_load8_beu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.36 stdc_load8_beu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_les16, Previous: stdc_load8_beu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.37 stdc_load8_les8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_les32, Previous: stdc_load8_les8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.38 stdc_load8_les16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_les64, Previous: stdc_load8_les16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.39 stdc_load8_les32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_leu8, Previous: stdc_load8_les32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.40 stdc_load8_les64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_leu16, Previous: stdc_load8_les64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.41 stdc_load8_leu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_leu32, Previous: stdc_load8_leu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.42 stdc_load8_leu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_load8_leu64, Previous: stdc_load8_leu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.43 stdc_load8_leu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_memreverse8, Previous: stdc_load8_leu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.44 stdc_load8_leu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.21.
Gnulib module: stdc_load8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_memreverse8u8, Previous: stdc_load8_leu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.45 stdc_memreverse8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.19.
Gnulib module: stdc_memreverse8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_memreverse8u16, Previous: stdc_memreverse8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.46 stdc_memreverse8u8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.20.
Gnulib module: stdc_memreverse8u
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_memreverse8u32, Previous: stdc_memreverse8u8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.47 stdc_memreverse8u16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.20.
Gnulib module: stdc_memreverse8u
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_memreverse8u64, Previous: stdc_memreverse8u16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.48 stdc_memreverse8u32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.20.
Gnulib module: stdc_memreverse8u
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_rotate_left, Previous: stdc_memreverse8u32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.49 stdc_memreverse8u64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.20.
Gnulib module: stdc_memreverse8u
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_rotate_right, Previous: stdc_memreverse8u64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.50 stdc_rotate_left ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.17.
Gnulib module: stdc_rotate_left
Portability problems fixed by Gnulib:
- This macro and its associated functions is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_bes8, Previous: stdc_rotate_left, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.51 stdc_rotate_right ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.18.
Gnulib module: stdc_rotate_right
Portability problems fixed by Gnulib:
- This macro and its associated functions is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_bes16, Previous: stdc_rotate_right, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.52 stdc_store8_aligned_bes8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_bes32, Previous: stdc_store8_aligned_bes8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.53 stdc_store8_aligned_bes16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_bes64, Previous: stdc_store8_aligned_bes16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.54 stdc_store8_aligned_bes32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_beu8, Previous: stdc_store8_aligned_bes32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.55 stdc_store8_aligned_bes64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_beu16, Previous: stdc_store8_aligned_bes64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.56 stdc_store8_aligned_beu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_beu32, Previous: stdc_store8_aligned_beu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.57 stdc_store8_aligned_beu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_beu64, Previous: stdc_store8_aligned_beu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.58 stdc_store8_aligned_beu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_les8, Previous: stdc_store8_aligned_beu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.59 stdc_store8_aligned_beu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_les16, Previous: stdc_store8_aligned_beu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.60 stdc_store8_aligned_les8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_les32, Previous: stdc_store8_aligned_les8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.61 stdc_store8_aligned_les16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_les64, Previous: stdc_store8_aligned_les16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.62 stdc_store8_aligned_les32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_leu8, Previous: stdc_store8_aligned_les32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.63 stdc_store8_aligned_les64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_leu16, Previous: stdc_store8_aligned_les64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.64 stdc_store8_aligned_leu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_leu32, Previous: stdc_store8_aligned_leu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.65 stdc_store8_aligned_leu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_aligned_leu64, Previous: stdc_store8_aligned_leu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.66 stdc_store8_aligned_leu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_bes8, Previous: stdc_store8_aligned_leu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.67 stdc_store8_aligned_leu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8_aligned
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_bes16, Previous: stdc_store8_aligned_leu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.68 stdc_store8_bes8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_bes32, Previous: stdc_store8_bes8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.69 stdc_store8_bes16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_bes64, Previous: stdc_store8_bes16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.70 stdc_store8_bes32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_beu8, Previous: stdc_store8_bes32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.71 stdc_store8_bes64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_beu16, Previous: stdc_store8_bes64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.72 stdc_store8_beu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_beu32, Previous: stdc_store8_beu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.73 stdc_store8_beu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_beu64, Previous: stdc_store8_beu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.74 stdc_store8_beu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_les8, Previous: stdc_store8_beu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.75 stdc_store8_beu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_les16, Previous: stdc_store8_beu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.76 stdc_store8_les8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_les32, Previous: stdc_store8_les8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.77 stdc_store8_les16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_les64, Previous: stdc_store8_les16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.78 stdc_store8_les32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_leu8, Previous: stdc_store8_les32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.79 stdc_store8_les64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_leu16, Previous: stdc_store8_les64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.80 stdc_store8_leu8 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_leu32, Previous: stdc_store8_leu8, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.81 stdc_store8_leu16 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_store8_leu64, Previous: stdc_store8_leu16, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.82 stdc_store8_leu32 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_trailing_ones, Previous: stdc_store8_leu32, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.83 stdc_store8_leu64 ¶
Documentation:
ISO C2y (draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3783.pdf)
section 7.18.22.
Gnulib module: stdc_store8
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.43, macOS 26, FreeBSD 15.0, NetBSD 10.0, OpenBSD 7.8, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: stdc_trailing_zeros, Previous: stdc_store8_leu64, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.84 stdc_trailing_ones ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.6.
Gnulib module: stdc_trailing_ones
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Previous: stdc_trailing_ones, Up: Functions and generic functions in <stdbit.h> [Contents][Index]
10.44.85 stdc_trailing_zeros ¶
Documentation:
ISO C23 (latest free draft
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf)
section 7.18.5.
Gnulib module: stdc_trailing_zeros
Portability problems fixed by Gnulib:
- This macro is missing on many platforms:
glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15.
Portability problems not fixed by Gnulib:
Next: Functions in <stdlib.h>, Previous: Functions and generic functions in <stdbit.h>, Up: ISO C and POSIX Function Substitutes [Contents][Index]
10.45 Functions in <stdio.h> ¶
Next: clearerr, Up: Functions in <stdio.h> [Contents][Index]
10.45.1 asprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/asprintf.html
Documentation:
Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu
Portability problems fixed by either Gnulib module vasprintf or vasprintf-posix or vasprintf-gnu:
- This function is missing on some platforms:
AIX 5.1, HP-UX 11, Solaris 10, mingw, MSVC 14.
Portability problems fixed by either Gnulib module vasprintf-posix or vasprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
Cygwin 1.5.24.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, Solaris 11.4, Cygwin 1.5.x.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, Cygwin 1.5.x.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
Portability problems fixed by Gnulib module vasprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
Next: fclose, Previous: ctermid, Up: Functions in <stdio.h> [Contents][Index]
10.45.4 dprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/dprintf.html
Gnulib module: dprintf or dprintf-posix or dprintf-gnu
Portability problems fixed by either Gnulib module dprintf or dprintf-posix or dprintf-gnu:
- This function is missing on many non-glibc platforms:
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.
Portability problems fixed by either Gnulib module dprintf-posix or dprintf-gnu:
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
Solaris 11.4.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
AIX 7.3, Solaris 11.4.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
Portability problems fixed by Gnulib module dprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module dprintf-posix or dprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, Android.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: fdopen, Previous: dprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.5 fclose ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fclose.html
Gnulib module: fclose
Portability problems fixed by Gnulib:
- On some platforms, this function fails to set the file position of a
seekable input stream to the byte after the last one actually read:
glibc 2.34, FreeBSD, AIX 7.2.
- This function crashes if the stream’s file descriptor has already been
closed on some platforms:
MSVC 14.
- On Windows platforms (excluding Cygwin),
socket and accept
followed by fdopen do not return streams that can be closed by
fclose.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
Next: fgetc, Previous: ferror, Up: Functions in <stdio.h> [Contents][Index]
10.45.9 fflush ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fflush.html
Gnulib module: fflush
Portability problems fixed by Gnulib:
fflush followed by fseek or fseeko, applied to an input
stream, should have the effect of positioning the underlying file descriptor.
It doesn’t do this on some platforms:
glibc 2.34, FreeBSD 14.0, and others.
fflush on an input stream changes the position of the stream to the
end of the previous buffer, on some platforms: mingw, MSVC 14.
fflush on an input stream right after ungetc does not discard
the ungetc buffer, on some platforms:
macOS 14, FreeBSD 6.0, NetBSD 10.0, OpenBSD 7.9, Cygwin 1.5.25-10.
fflush fails with EBADF if the stream is not open for writing:
NetBSD 10.0, OpenBSD 7.9.
Portability problems not fixed by Gnulib:
fflush, ftell, ftello, fgetpos behave incorrectly
on input streams that are opened in O_TEXT mode and whose contents
contains Unix line terminators (LF), on some platforms: mingw, MSVC 14.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- This function crashes if the stream’s file descriptor has already been
closed, if
MSVC_INVALID_PARAMETER_HANDLING is
HAIRY_LIBRARY_HANDLING or SANE_LIBRARY_HANDLING,
on some platforms:
MSVC 14.
fflush on an input stream right after ungetc does not discard
the ungetc buffer, on some platforms:
AIX 5.1, HP-UX 11, Solaris 11 2010-11, mingw, MSVC 14.
Next: fgetpos, Previous: fflush, Up: Functions in <stdio.h> [Contents][Index]
10.45.10 fgetc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fgetc.html
Gnulib module: stdio-h, nonblocking
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
is, they require this function to act as if it reads end-of-file if
feof would return nonzero. However, on some systems this
function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include
glibc and default Solaris.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- This function crashes if the stream’s file descriptor has already been
closed, if
MSVC_INVALID_PARAMETER_HANDLING is
HAIRY_LIBRARY_HANDLING or SANE_LIBRARY_HANDLING,
on some platforms:
MSVC 14.
Next: fgets, Previous: fgetc, Up: Functions in <stdio.h> [Contents][Index]
10.45.11 fgetpos ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fgetpos.html
Gnulib module: —
Portability problems fixed by Gnulib:
- On platforms where
off_t is a 32-bit type, this function may not
work correctly on files 2 GiB and larger. See Large File Support.
Portability problems not fixed by Gnulib:
fflush, ftell, ftello, fgetpos behave incorrectly
on input streams that are opened in O_TEXT mode and whose contents
contains Unix line terminators (LF), on some platforms: mingw, MSVC 14.
- This function mistakenly succeeds on pipes on some platforms:
mingw 10.
Next: fileno, Previous: fgetpos, Up: Functions in <stdio.h> [Contents][Index]
10.45.12 fgets ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fgets.html
Gnulib module: stdio-h, nonblocking
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
is, they require this function to act as if it reads end-of-file if
feof would return nonzero. However, on some systems this
function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include
glibc and default Solaris.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
Next: fopen, Previous: flockfile, Up: Functions in <stdio.h> [Contents][Index]
10.45.15 fmemopen ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fmemopen.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-glibc platforms:
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.
An alternative to the fmemopen function is the Gnulib module
sf-istream.
Next: fprintf, Previous: fmemopen, Up: Functions in <stdio.h> [Contents][Index]
10.45.16 fopen ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fopen.html
Gnulib module: fopen or fopen-gnu
Portability problems fixed by either Gnulib module fopen or fopen-gnu:
- This function does not fail when the file name argument ends in a slash
and (without the slash) names a nonexistent file or a file that is not a
directory, on some platforms:
HP-UX 11.00, AIX 7.1, Solaris 9.
- On platforms where
off_t is a 32-bit type, fopen may not work
correctly with files 2 GiB and larger. See Large File Support.
- On Windows platforms (excluding Cygwin), this function does usually not
recognize the /dev/null filename.
Portability problems fixed by Gnulib module fopen-gnu:
- This function does not support the mode character
‘x’ (corresponding to
O_EXCL), introduced in ISO C11,
on some platforms:
FreeBSD 8.2, NetBSD 6.1, OpenBSD 5.6, Minix 3.2, AIX 6.1, HP-UX 11.31, Solaris 11.3, Cygwin 1.7.16 (2012), mingw with MSVCRT, MSVC 14.
- This function does not support the mode character
‘e’ (corresponding to
O_CLOEXEC), introduced in
POSIX.1-2024, on some platforms:
glibc 2.6, macOS 14, FreeBSD 9.0, NetBSD 5.1, OpenBSD 5.6, Minix 3.2, AIX 7.2, HP-UX 11.31, Solaris 11.3, Cygwin 1.7.16 (2012), mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On Windows, this function returns a file stream in “text” mode by default;
this means that it translates
'\n' to CR/LF by default. Use the
"b" flag if you need reliable binary I/O.
- On Windows platforms (excluding Cygwin), this function fails to open
directories for reading. Such streams have implementation-defined
semantics on other platforms. To avoid directory streams with a
consistent error message, use
fstat after open and
fdopen, rather than fopen and fileno.
Next: fputc, Previous: fopen, Up: Functions in <stdio.h> [Contents][Index]
10.45.17 fprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fprintf.html
Gnulib module: fprintf-posix or fprintf-gnu or stdio-h, nonblocking, sigpipe
Portability problems fixed by either Gnulib module stdio-h or fprintf-posix or fprintf-gnu:
- This function does not support non-ASCII characters in double-byte encoding,
corresponding to the locale, on some platforms:
mingw with
__USE_MINGW_ANSI_STDIO in combination with msvcrt,
when the output goes to a Windows console.
Portability problems fixed by either Gnulib module fprintf-posix or fprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
Portability problems fixed by Gnulib module fprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module fprintf-posix or fprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
Portability problems fixed by Gnulib module stdio-h or fprintf-posix or fprintf-gnu, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h or fprintf-posix or fprintf-gnu, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- Attempting to write to a read-only stream fails with
EOF but
does not set the error flag for ferror on some platforms:
glibc 2.13, cygwin 1.7.9.
Next: fputs, Previous: fprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.18 fputc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fputc.html
Gnulib module: stdio-h, nonblocking, sigpipe
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- This function fails and produces garbled output
when invoked twice, for outputting a non-ASCII character in double-byte encoding,
corresponding to the locale, on some platforms:
mingw in combination with msvcrt,
when the output goes to a Windows console.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
- This function crashes if the stream’s file descriptor has already been
closed, if
MSVC_INVALID_PARAMETER_HANDLING is
HAIRY_LIBRARY_HANDLING or SANE_LIBRARY_HANDLING,
on some platforms:
MSVC 14.
Next: fread, Previous: fputc, Up: Functions in <stdio.h> [Contents][Index]
10.45.19 fputs ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fputs.html
Gnulib module: stdio-h, nonblocking, sigpipe
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: freopen, Previous: fputs, Up: Functions in <stdio.h> [Contents][Index]
10.45.20 fread ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fread.html
Gnulib module: stdio-h, nonblocking
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
is, they require this function to act as if it reads end-of-file if
feof would return nonzero. However, on some systems this
function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include
glibc and default Solaris.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- This function crashes if the stream’s file descriptor has already been
closed, if
MSVC_INVALID_PARAMETER_HANDLING is
HAIRY_LIBRARY_HANDLING or SANE_LIBRARY_HANDLING,
on some platforms:
MSVC 14.
Next: fscanf, Previous: fread, Up: Functions in <stdio.h> [Contents][Index]
10.45.21 freopen ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/freopen.html
Gnulib module: freopen
Portability problems fixed by Gnulib:
- On some platforms, if
stream does not already have an open
file descriptor, freopen returns the stream without opening
the file: glibc 2.24.
- On platforms where
off_t is a 32-bit type, freopen may not work
correctly with files 2 GiB and larger. See Large File Support.
- On Windows platforms (excluding Cygwin), this function does usually not
recognize the /dev/null filename.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- This function does not support a
NULL file name argument on some
platforms:
OpenBSD 4.9, AIX 7.1, HP-UX 11.23, Solaris 10, mingw, MSVC 14.
- This function does not fail when the file name argument ends in a slash
and (without the slash) names a nonexistent file or a file that is not a
directory, on some platforms:
HP-UX 11.00, Solaris 9.
- Applications should not assume that
fileno(f) will be the same
before and after a call to freopen(name,mode,f).
However, the
module freopen-safer can at least protect stdin, stdout,
and stderr.
Next: fseek, Previous: freopen, Up: Functions in <stdio.h> [Contents][Index]
10.45.22 fscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-fscanf.html
Gnulib module: stdio-h, nonblocking
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
is, they require this function to act as if it reads end-of-file if
feof would return nonzero. However, on some systems this
function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include
glibc and default Solaris.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On Windows, this function doesn’t support the
hh, ll, j,
t, z size specifiers.
Next: fseeko, Previous: fscanf, Up: Functions in <stdio.h> [Contents][Index]
10.45.23 fseek ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fseek.html
Gnulib module: fseek
Portability problems fixed by Gnulib:
- This function mistakenly succeeds on pipes on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On platforms where
long is a 32-bit type, fseek does not work
correctly with files 2 GiB and larger, even when the AC_SYS_LARGEFILE
macro is used. The fix is to use fseeko instead.
Next: ftello, Previous: fsetpos, Up: Functions in <stdio.h> [Contents][Index]
10.45.26 ftell ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ftell.html
Gnulib module: ftell
Portability problems fixed by Gnulib:
- This function mistakenly succeeds on pipes on some platforms:
mingw, MSVC 14.
- This function produces incorrect results after
putc that followed a
getc call that reached EOF on some platforms:
Solaris 11 2010-11.
- This function, when invoked after
ungetc, throws away the ungetc
buffer, changes the stream’s file position, and returns the wrong position on
some platforms:
macOS 10.15, 11, 12.
- This function mistakenly succeeds on pipes on some platforms:
mingw 10.
Portability problems not fixed by Gnulib:
- This function produces incorrect results immediately after
fseek on some
platforms:
HP-UX 11.
fflush, ftell, ftello, fgetpos behave incorrectly
on input streams that are opened in O_TEXT mode and whose contents
contains Unix line terminators (LF), on some platforms: mingw, MSVC 14.
- On platforms where
long is a 32-bit type, ftell does not work
correctly with files 2 GiB and larger, even when the AC_SYS_LARGEFILE
macro is used. The fix is to use ftello instead.
Next: ftrylockfile, Previous: ftell, Up: Functions in <stdio.h> [Contents][Index]
10.45.27 ftello ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ftello.html
Gnulib module: ftello
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- The declaration of
ftello in <stdio.h> is not enabled by default
on some platforms:
glibc 2.3.6.
- This function produces incorrect results after
putc that followed a
getc call that reached EOF on some platforms:
Solaris 11 2010-11.
- This function, when invoked after
ungetc, throws away the ungetc
buffer, changes the stream’s file position, and returns the wrong position on
some platforms:
macOS 10.15, 11, 12.
- This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
- This function mistakenly succeeds on pipes on some platforms:
mingw 10.
- On platforms where
off_t is a 32-bit type, ftello does not work
correctly with files 2 GiB and larger. See Large File Support.
Portability problems not fixed by Gnulib:
- This function produces incorrect results immediately after
fseek on some
platforms:
HP-UX 11.
fflush, ftell, ftello, fgetpos behave incorrectly
on input streams that are opened in O_TEXT mode and whose contents
contains Unix line terminators (LF), on some platforms: mingw, MSVC 14.
Next: getc, Previous: funlockfile, Up: Functions in <stdio.h> [Contents][Index]
10.45.30 fwrite ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fwrite.html
Gnulib module: stdio-h, nonblocking, sigpipe
Portability problems fixed by Gnulib module stdio-h:
- This function fails and produces no output
when the argument string starts with a non-ASCII character in double-byte encoding,
corresponding to the locale, on some platforms:
mingw in combination with msvcrt,
when the output goes to a Windows console.
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
- This function crashes if the stream’s file descriptor has already been
closed, if
MSVC_INVALID_PARAMETER_HANDLING is
HAIRY_LIBRARY_HANDLING or SANE_LIBRARY_HANDLING,
on some platforms:
MSVC 14.
Next: getc_unlocked, Previous: fwrite, Up: Functions in <stdio.h> [Contents][Index]
10.45.31 getc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getc.html
Gnulib module: stdio-h, nonblocking
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
is, they require this function to act as if it reads end-of-file if
feof would return nonzero. However, on some systems this
function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include
glibc and default Solaris.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
Next: getchar_unlocked, Previous: getc_unlocked, Up: Functions in <stdio.h> [Contents][Index]
10.45.33 getchar ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getchar.html
Gnulib module: stdio-h, nonblocking
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
is, they require this function to act as if it reads end-of-file if
feof would return nonzero. However, on some systems this
function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include
glibc and default Solaris.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
Next: getline, Previous: getchar_unlocked, Up: Functions in <stdio.h> [Contents][Index]
10.45.35 getdelim ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getdelim.html
Gnulib module: getdelim
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
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 10, mingw, MSVC 14, Android 4.2.
- This function makes out-of-bounds reads on some platforms:
macOS 10.13.
- This function crashes when passed a pointer to a NULL buffer together with a
pointer to a non-zero buffer size on some platforms:
FreeBSD 8.0.
Portability problems not fixed by Gnulib:
- This function has quadratic running time for long lines on some platforms:
uClibc 0.9.31.
- This function does not NUL terminate the buffer when the first
character read is EOF on some platforms:
glibc 2.42.
Next: open_memstream, Previous: getdelim, Up: Functions in <stdio.h> [Contents][Index]
10.45.36 getline ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getline.html
Gnulib module: getline
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
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 10, mingw, MSVC 14, Android 4.2.
- This function is missing a declaration on some platforms:
AIX 7.1.
- Some platforms provide a function by this name but with the wrong
signature, for example in -linet.
- This function crashes when passed a pointer to a NULL buffer together with a
pointer to a non-zero buffer size on some platforms:
FreeBSD 8.0.
Portability problems not fixed by Gnulib:
- This function has quadratic running time for long lines on some platforms:
uClibc 0.9.31.
- This function does not NUL terminate the buffer when the first
character read is EOF on some platforms:
glibc 2.42.
Next: pclose, Previous: getline, Up: Functions in <stdio.h> [Contents][Index]
10.45.37 open_memstream ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/open_memstream.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
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.
An alternative to the open_memstream function is the Gnulib module
string-buffer.
Next: popen, Previous: pclose, Up: Functions in <stdio.h> [Contents][Index]
10.45.39 perror ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/perror.html
Gnulib module: perror
Portability problems fixed by Gnulib:
- This function does not support the error values that are specified by POSIX
but not defined by the system, on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, mingw, MSVC 14.
- This function treats
errno of 0 like failure, although POSIX
requires that the message declare it as a success, on some platforms:
FreeBSD 8.2, OpenBSD 4.7, macOS 14.
- This function clobbers the
strerror buffer on some platforms:
Cygwin 1.7.9, Android 11.
- This function fails to print a useful a string for out-of-range integers on
some platforms:
HP-UX 11.
Portability problems not fixed by Gnulib:
- POSIX requires that this function set the stream error bit (detected
by
ferror) on write failure, but not all platforms do this:
glibc 2.13, cygwin 1.7.9.
- POSIX requires that this function not alter stream orientation, but
the gnulib replacement locks in byte orientation and fails on wide
character streams.
Next: printf, Previous: perror, Up: Functions in <stdio.h> [Contents][Index]
10.45.40 popen ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/popen.html
Gnulib module: popen
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
MSVC 14.
- Some platforms start the child with closed stdin or stdout if the
standard descriptors were closed in the parent:
Cygwin 1.5.x.
- This function hangs if called with closed stdin or stdout on some platforms:
OS/2 kLIBC.
Portability problems not fixed by Gnulib:
- On native Windows platforms, this functions terminates the current process
with exit code 127 if the environment variable
COMSPEC is not set.
- Some platforms mistakenly set the close-on-exec bit, then if it is
cleared by the application, the platform then leaks file descriptors
from earlier
popen calls into subsequent popen children:
Cygwin 1.5.x.
Next: putc, Previous: popen, Up: Functions in <stdio.h> [Contents][Index]
10.45.41 printf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/printf.html
Gnulib module: printf-posix or printf-gnu or stdio-h, nonblocking, sigpipe
Portability problems fixed by either Gnulib module stdio-h or fprintf-posix or fprintf-gnu:
- This function does not support non-ASCII characters in double-byte encoding,
corresponding to the locale, on some platforms:
mingw with
__USE_MINGW_ANSI_STDIO in combination with msvcrt,
when the output goes to a Windows console.
Portability problems fixed by either Gnulib module printf-posix or printf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw, MSVC 14.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
- This function returns zero instead of a negative number after running
out of memory:
OpenBSD 7.8.
Portability problems fixed by Gnulib module printf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module printf-posix or printf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
Portability problems fixed by Gnulib module stdio-h or printf-posix or printf-gnu, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h or printf-posix or printf-gnu, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- Attempting to write to a read-only stream fails with
EOF but
does not set the error flag for ferror on some platforms:
glibc 2.13, cygwin 1.7.9.
Next: putc_unlocked, Previous: printf, Up: Functions in <stdio.h> [Contents][Index]
10.45.42 putc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/putc.html
Gnulib module: stdio-h, nonblocking, sigpipe
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- This function fails and produces garbled output
when invoked twice, for outputting a non-ASCII character in double-byte encoding,
corresponding to the locale, on some platforms:
mingw in combination with msvcrt,
when the output goes to a Windows console.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: putchar_unlocked, Previous: putc_unlocked, Up: Functions in <stdio.h> [Contents][Index]
10.45.44 putchar ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/putchar.html
Gnulib module: stdio-h, nonblocking, sigpipe
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: remove, Previous: putchar_unlocked, Up: Functions in <stdio.h> [Contents][Index]
10.45.46 puts ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/puts.html
Gnulib module: stdio-h, nonblocking, sigpipe
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: renameat, Previous: remove, Up: Functions in <stdio.h> [Contents][Index]
10.45.48 rename ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/rename.html
Gnulib module: rename
Portability problems fixed by Gnulib:
- This function does not allow trailing slashes when creating a
destination directory, as in
rename("dir","new/"):
NetBSD 1.6.
- This function does not reject trailing slashes on the destination for
non-directories on some platforms, as in
rename("file","new/"):
AIX 7.1, Solaris 11.3, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not reject trailing slashes on symlinks to
non-directories on some platforms, as in
rename("link-to-file/","f"):
FreeBSD 7.2.
- This function ignores trailing slashes on symlinks on some platforms,
such that
rename("link/","new") corrupts link:
Solaris 9.
- This function incorrectly reduces the link count when comparing two
spellings of a hard link on some platforms:
NetBSD 1.6, Cygwin 1.5.x.
- This function will not always replace an existing destination on some
platforms:
Cygwin 1.5.x, mingw, MSVC 14.
However, the replacement is not atomic for directories, and may end up
losing the empty destination if the source could not be renamed.
- This function mistakenly allows names ending in ‘.’ or ‘..’
on some platforms:
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not reject attempts to rename existing directories
and non-directories onto one another on some platforms:
Cygwin 1.5.x, mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- POSIX requires that
rename("symlink-to-dir/","dir2") rename
dir and leave symlink-to-dir dangling; likewise, it
requires that rename("dir","dangling/") rename dir so
that dangling is no longer a dangling symlink. This behavior
is counter-intuitive, so on some systems, rename fails with
ENOTDIR if either argument is a symlink with a trailing slash:
glibc, OpenBSD, Cygwin 1.7.
- POSIX requires that
rename do nothing and return 0 if the
source and destination are hard links to the same file. This behavior
is counterintuitive, and on some systems renameat is a no-op in
this way only if the source and destination identify the same
directory entry. On these systems, for example, although renaming
./f to f is a no-op, renaming f to g
deletes f when f and g are hard links to the same
file:
NetBSD 7.0.
- After renaming a non-empty directory over an existing empty directory,
the old directory name is still visible through the
stat function
for 30 seconds after the rename, on NFS file systems, on some platforms:
Linux 2.6.18.
- This function will not rename a source that is currently opened
by any process:
mingw, MSVC 14.
Next: rewind, Previous: rename, Up: Functions in <stdio.h> [Contents][Index]
10.45.49 renameat ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/renameat.html
Gnulib module: renameat
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Cygwin 1.5.x, mingw, MSVC 14.
But the replacement function is not safe to be used in libraries and is not
thread-safe.
- This function is declared in
<unistd.h>, not in <stdio.h>,
on some platforms:
NetBSD 7.0, Solaris 11.4.
- This function is declared in
<sys/stat.h>, not in <stdio.h>,
on some platforms:
Android 4.3.
- This function does not reject trailing slashes on non-directories on
some platforms, as in
renameat(fd,"file",fd,"new/"):
Solaris 11.4.
- This function ignores trailing slashes on symlinks on some platforms,
such that
renameat(fd,"link/",fd,"new") corrupts link:
Solaris 9.
renameat (AT_FDCWD, "file", AT_FDCWD, "new/") succeeds instead of
failing and setting errno to ENOTDIR, on some platforms:
GNU/Hurd with glibc 2.41.
renameat (ATFDCWD, "dir", AT_FDCWD, "new/") fails with
errno set to ENOENT, on some platforms:
GNU/Hurd with glibc 2.42.
renameat (ATFDCWD, "dir/", AT_FDCWD, "new") fails with
errno set to ENOTDIR, on some platforms:
GNU/Hurd with glibc 2.42.
Portability problems not fixed by Gnulib:
- POSIX requires that
renameat(fd,"symlink-to-dir/",fd,"dir2") rename
dir and leave symlink-to-dir dangling; likewise, it
requires that renameat(fd,"dir",fd,"dangling/") rename dir so
that dangling is no longer a dangling symlink. This behavior
is counter-intuitive, so on some systems, renameat fails with
ENOTDIR if either argument is a symlink with a trailing slash:
glibc, OpenBSD, Cygwin 1.7.
- POSIX requires that
renameat do nothing and return 0 if the
source and destination are hard links to the same file. This behavior
is counterintuitive, and on some systems renameat is a no-op in
this way only if the source and destination identify the same
directory entry. On these systems, for example, although renaming
./f to f is a no-op, renaming f to g
deletes f when f and g are hard links to the same
file:
NetBSD 7.0.
- After renaming a non-empty directory over an existing empty directory,
the old directory name is still visible through the
stat function
for 30 seconds after the rename, on NFS file systems, on some platforms:
Linux 2.6.18.
- This function will not rename a source that is currently opened
by any process:
mingw, MSVC 14.
Next: setbuf, Previous: rewind, Up: Functions in <stdio.h> [Contents][Index]
10.45.51 scanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/scanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-scanf.html
Gnulib module: stdio-h, nonblocking
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- C99 and POSIX.1-2001 and later require end-of-file to be sticky, that
is, they require this function to act as if it reads end-of-file if
feof would return nonzero. However, on some systems this
function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include
glibc and default Solaris.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On Windows, this function doesn’t support the
hh, ll, j,
t, z size specifiers.
Next: sprintf, Previous: setvbuf, Up: Functions in <stdio.h> [Contents][Index]
10.45.54 snprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/snprintf.html
Gnulib module: snprintf or snprintf-posix or snprintf-gnu
Portability problems fixed by either Gnulib module snprintf or snprintf-posix or snprintf-gnu:
- This function is missing on some platforms:
MSVC 14.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw.
- This function does not return a byte count as specified in C99 on some
platforms:
HP-UX 11, Solaris 9, mingw.
Portability problems fixed by either Gnulib module snprintf-posix or snprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
- This function does not truncate the result as specified in C99 on some platforms:
mingw, MSVC 14.
- This function does not fully support the ‘n’ directive on some platforms:
HP-UX 11, mingw.
Portability problems fixed by Gnulib module snprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module snprintf-posix or snprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
Next: sscanf, Previous: snprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.55 sprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sprintf.html
Gnulib module: sprintf-posix or sprintf-gnu
Portability problems fixed by either Gnulib module sprintf-posix or sprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw, MSVC 14.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
- The compiler warns that this function is deprecated:
macOS 14.
Portability problems fixed by Gnulib module sprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module sprintf-posix or sprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
Next: stderr, Previous: sprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.56 sscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-sscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On Windows, this function doesn’t support the
hh, ll, j,
t, z size specifiers.
Next: stdin, Previous: sscanf, Up: Functions in <stdio.h> [Contents][Index]
10.45.57 stderr ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/stderr.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- 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 ftello module and do
ftello(stderr).
- POSIX states that a setuid application can guarantee that fd 2 is
open, but some systems guarantee this even for non-setuid programs.
If an application is executed with fd 2 closed, use of
stderr
can affect an unrelated file that happened to be assigned to fd 2.
The gnulib xstdopen or the *-safer modules may be used to
guarantee that fd 2 stays
reserved for stderr.
Next: stdout, Previous: stderr, Up: Functions in <stdio.h> [Contents][Index]
10.45.58 stdin ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdin.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- stdin is created in 32-bit mode instead of 64-bit mode: Cygwin 1.5.x.
One workaround is to use freopen(NULL, “r”, stdin) on Cygwin 1.5.21
or newer. Another is to use the gnulib ftello module and do
ftello(stdin).
- POSIX states that a setuid application can guarantee that fd 0 is
open, but some systems guarantee this even for non-setuid programs.
If an application is executed with fd 0 closed, use of
stdin
can affect an unrelated file that happened to be assigned to fd 0.
The gnulib xstdopen or the *-safer modules may be used to
guarantee that fd 0 stays
reserved for stdin.
Next: tmpfile, Previous: stdin, Up: Functions in <stdio.h> [Contents][Index]
10.45.59 stdout ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/stdout.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- 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 ftello module and do
ftello(stdout).
- POSIX states that a setuid application can guarantee that fd 1 is
open, but some systems guarantee this even for non-setuid programs.
If an application is executed with fd 1 closed, use of
stdout
can affect an unrelated file that happened to be assigned to fd 1.
The gnulib xstdopen or the *-safer modules may be used to
guarantee that fd 1 stays
reserved for stdout.
Next: vdprintf, Previous: ungetc, Up: Functions in <stdio.h> [Contents][Index]
10.45.63 vasprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vasprintf.html
Documentation:
Gnulib module: vasprintf or vasprintf-posix or vasprintf-gnu
Portability problems fixed by either Gnulib module vasprintf or vasprintf-posix or vasprintf-gnu:
- This function is missing on some platforms:
AIX 5.1, HP-UX 11, Solaris 10, mingw, MSVC 14.
Portability problems fixed by either Gnulib module vasprintf-posix or vasprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
Cygwin 1.5.24.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, Solaris 11.4, Cygwin 1.5.x.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, Cygwin 1.5.x.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
Portability problems fixed by Gnulib module vasprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
Next: vfprintf, Previous: vasprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.64 vdprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vdprintf.html
Gnulib module: vdprintf or vdprintf-posix or vdprintf-gnu
Portability problems fixed by either Gnulib module vdprintf or vdprintf-posix or vdprintf-gnu:
- This function is missing on some platforms:
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.
Portability problems fixed by either Gnulib module vdprintf-posix or vdprintf-gnu:
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
Solaris 11.4.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
AIX 7.3, Solaris 11.4.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
Portability problems fixed by Gnulib module vdprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module vdprintf-posix or vdprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, Android.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: vfscanf, Previous: vdprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.65 vfprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vfprintf.html
Gnulib module: vfprintf-posix or vfprintf-gnu or stdio-h, nonblocking, sigpipe
Portability problems fixed by either Gnulib module stdio-h or fprintf-posix or fprintf-gnu:
- This function does not support non-ASCII characters in double-byte encoding,
corresponding to the locale, on some platforms:
mingw with
__USE_MINGW_ANSI_STDIO in combination with msvcrt,
when the output goes to a Windows console.
Portability problems fixed by either Gnulib module vfprintf-posix or vfprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw, MSVC 14.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
Portability problems fixed by Gnulib module vfprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module vfprintf-posix or vfprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
Portability problems fixed by Gnulib module stdio-h or vfprintf-posix or vfprintf-gnu, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h or vfprintf-posix or vfprintf-gnu, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- Attempting to write to a read-only stream fails with
EOF but
does not set the error flag for ferror on some platforms:
glibc 2.13, cygwin 1.7.9.
Next: vprintf, Previous: vfprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.66 vfscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vfscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vfscanf.html
Gnulib module: vfscanf, nonblocking
Portability problems fixed by Gnulib module vfscanf, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On Windows, this function doesn’t support the
hh, ll, j,
t, z size specifiers.
Next: vscanf, Previous: vfscanf, Up: Functions in <stdio.h> [Contents][Index]
10.45.67 vprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vprintf.html
Gnulib module: vprintf-posix or vprintf-gnu or stdio-h, nonblocking, sigpipe
Portability problems fixed by either Gnulib module stdio-h or fprintf-posix or fprintf-gnu:
- This function does not support non-ASCII characters in double-byte encoding,
corresponding to the locale, on some platforms:
mingw with
__USE_MINGW_ANSI_STDIO in combination with msvcrt,
when the output goes to a Windows console.
Portability problems fixed by either Gnulib module vprintf-posix or vprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw, MSVC 14.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
Portability problems fixed by Gnulib module vprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module vprintf-posix or vprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
Portability problems fixed by Gnulib module stdio-h or vprintf-posix or vprintf-gnu, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h or vprintf-posix or vprintf-gnu, together with module sigpipe:
- When writing to a pipe with no readers, this function fails, instead of
obeying the current
SIGPIPE handler, on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- Attempting to write to a read-only stream fails with
EOF but
does not set the error flag for ferror on some platforms:
glibc 2.13, cygwin 1.7.9.
Next: vsnprintf, Previous: vprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.68 vscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vscanf.html
Gnulib module: vscanf, nonblocking
Portability problems fixed by Gnulib module vscanf, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On Windows, these functions don’t support the
hh, ll, j,
t, z size specifiers.
Next: vsprintf, Previous: vscanf, Up: Functions in <stdio.h> [Contents][Index]
10.45.69 vsnprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vsnprintf.html
Gnulib module: vsnprintf or vsnprintf-posix or vsnprintf-gnu
Portability problems fixed by either Gnulib module vsnprintf or vsnprintf-posix or vsnprintf-gnu:
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw, MSVC 14.
- This function does not return a byte count as specified in C99 on some
platforms:
HP-UX 11, Solaris 9, mingw, MSVC 14.
Portability problems fixed by either Gnulib module vsnprintf-posix or vsnprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
- This function does not truncate the result as specified in C99 on some platforms:
mingw, MSVC 14.
- This function overwrites memory even when a zero size argument is passed on some
platforms:
HP-UX 11.
Portability problems fixed by Gnulib module vsnprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module vsnprintf-posix or vsnprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not fully support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, HP-UX 11, mingw, MSVC 14, Android.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
Next: vsscanf, Previous: vsnprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.70 vsprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vsprintf.html
Gnulib module: vsprintf-posix or vsprintf-gnu
Portability problems fixed by either Gnulib module vsprintf-posix or vsprintf-gnu:
- This function does not support size specifiers as in C99 (
hh, ll,
j, t, z) on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf of ‘long double’ numbers is unsupported on some platforms:
mingw, MSVC 14.
- printf
"%f", "%e", "%g" of Infinity and NaN yields an
incorrect result on some platforms:
AIX 7.3, Solaris 11.4, mingw, MSVC 14.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘a’ and ‘A’ directives on some
platforms:
FreeBSD 5.2.1, OpenBSD 4.0, AIX 5.2, HP-UX 11,
Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘F’ directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
- This function does not support the ‘ls’ directive on some platforms:
OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘ls’ directive correctly
on some platforms:
Solaris 11.4.
- This function does not support format directives that access arguments in an
arbitrary order, such as
"%2$s", on some platforms:
NetBSD 3.0, mingw, MSVC 14.
- This function doesn’t support the
' flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
- This function does not round the argument of the ‘a’ directive correctly
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4.
- printf
"%010f" of NaN and Infinity yields an incorrect result (padded
with zeroes, or wrong capitalization) on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 7.3, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- This function does not support precisions larger than 512 or 1024 in integer,
floating-point and pointer output on some platforms:
AIX 7.1, Solaris 10/x86, mingw, MSVC/clang.
- This function mishandles large floating point precisions
(for example, formatting 1.0 with ‘"%.511f"’)
on some platforms:
Solaris 10.
- This function produces wrong output for the ‘lc’ directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
- This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
- The compiler warns that this function is deprecated:
macOS 14.
Portability problems fixed by Gnulib module vsprintf-gnu:
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
Portability problems fixed by either Gnulib module vsprintf-posix or vsprintf-gnu
and additionally the Gnulib module printf-with-n-directive:
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
Portability problems not fixed by Gnulib:
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- Formatting noncanonical ‘long double’ numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
Previous: vsprintf, Up: Functions in <stdio.h> [Contents][Index]
10.45.71 vsscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vsscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vsscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
MSVC 14.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows platforms (excluding Cygwin), this function does not set
errno
upon failure.
- On Windows, these functions don’t support the
hh, ll, j,
t, z size specifiers.
Next: Functions in <string.h>, Previous: Functions in <stdio.h>, Up: ISO C and POSIX Function Substitutes [Contents][Index]
10.46 Functions in <stdlib.h> ¶
Next: at_quick_exit, Previous: abs, Up: Functions in <stdlib.h> [Contents][Index]
10.46.5 aligned_alloc ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.24.3.1.
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/aligned_alloc.html
Documentation:
man aligned_alloc
Gnulib module: aligned_alloc
Portability problems fixed by Gnulib:
- This function fails if the alignment argument is smaller than
sizeof (void *) on some platforms:
macOS 14, AIX 7.3.1.
- This function returns a null pointer if the requested size is
not a multiple of the alignment:
Solaris 11.4.
- This function returns a null pointer if the size argument is zero:
macOS 15, AIX 7.3, Solaris 11.4.
- On some platforms,
aligned_alloc crashes if the requested size is
not a multiple of the alignment:
AddressSanitizer (gcc 11.2 or clang 13).
Portability problems not fixed by Gnulib:
- This function is missing on many older platforms:
glibc 2.15, macOS 10.14, FreeBSD 6.4, NetBSD 7.1, OpenBSD 6.0, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.3, Cygwin 1.7.x, mingw, MSVC 14, Android 8.1.
- If the alignment and size are absurdly large, this function crashes:
glibc 2.42.
Gnulib has partial substitutes for aligned_alloc
that do not crash even if the AddressSanitizer bug is present:
-
The Gnulib module
alignalloc provides a portable function
alignalloc that is a near-substitute for glibc
aligned_alloc, except that the result must be freed
with alignfree rather than plain free.
-
The Gnulib module
aligned-malloc provides functions for
allocating and freeing blocks of suitably aligned memory.
-
The Gnulib module
pagealign_alloc provides a similar API for
allocating and freeing blocks of memory aligned on a system page boundary.
Next: atexit, Previous: aligned_alloc, Up: Functions in <stdlib.h> [Contents][Index]
10.46.6 at_quick_exit ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.24.4.3.
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/at_quick_exit.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.9, macOS 14, FreeBSD 6.4, NetBSD 5.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.1, HP-UX 11.31, Solaris 11.3, Cygwin 1.7.x, mingw, MSVC 14, Android 4.3.
Next: atof, Previous: at_quick_exit, Up: Functions in <stdlib.h> [Contents][Index]
10.46.7 atexit ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/atexit.html
Gnulib module: atexit
Portability problems fixed by Gnulib:
- This function is missing on some old platforms.
Portability problems not fixed by Gnulib:
- The exit status can be incorrect for a process terminated by a signal
during a call to a function registered by
atexit. This is
because if a signal terminates a process after exit is called
or main returns, the process’s exit status is that specified by
exit’s argument or by main’s return value, instead of
being the exit status corresponding to the signal:
z/OS 3.1.
Next: atoi, Previous: atexit, Up: Functions in <stdlib.h> [Contents][Index]
10.46.8 atof ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/atof.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
Android 4.4.
- This function mis-parses strings with leading ‘+’ on some old platforms:
Old versions of Linux.
- This function returns a positive value for negative underflow on some
platforms:
glibc 2.4, Mingw, Cygwin.
- This function fails to do a valid parse of ‘-0x’ on some
platforms:
glibc 2.4, Cygwin < 1.5.25-11.
- This function fails to parse Infinities and plain NaNs on some platforms:
Mingw, OpenBSD 4.0.
- This function fails to parse NaN() on some platforms:
Mingw, OpenBSD 4.0, Cygwin < 1.5.25-11.
- This function fails to parse NaN(n-char-sequence) on some platforms:
Mingw, OpenBSD 4.0.
- This function fails to parse C99 hexadecimal floating point on some
platforms:
Mingw, OpenBSD 4.0.
- This function fails to correctly parse very long strings on some
platforms:
Mingw, Cygwin.
Next: div, Previous: bsearch, Up: Functions in <stdlib.h> [Contents][Index]
10.46.13 calloc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/calloc.html
Gnulib module: calloc-posix
Portability problems fixed by Gnulib:
- On some platforms, when the function fails it does not set
errno:
mingw, MSVC 14.
- On some platforms, when the function fails it might set
errno
to EAGAIN instead of to ENOMEM. Although POSIX allows
EAGAIN, the calloc-posix module insists on ENOMEM
which also conforms to POSIX and is GNU-compatible:
Solaris 11.4.
- On some platforms,
calloc (n, s) can succeed even if
multiplying n by s would exceed PTRDIFF_MAX or
SIZE_MAX. Although failing to check for exceeding
PTRDIFF_MAX is arguably allowed by POSIX it can lead to
undefined behavior later, so calloc-posix does not allow
going over the limit.
Extension: Gnulib provides a module ‘calloc-gnu’ that substitutes a
calloc implementation that behaves more like the glibc implementation.
It fixes this portability problem:
calloc (0, s) and calloc (n, 0) return NULL on success
on some platforms:
AIX 7.3.
Next: free_aligned_sized, Previous: exit, Up: Functions in <stdlib.h> [Contents][Index]
10.46.18 free ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/free.html
Gnulib module: free-posix
Portability problems fixed by Gnulib:
- This function may clobber
errno on many platforms:
glibc 2.32, Mac OS X, FreeBSD, NetBSD, OpenBSD 4.4, Minix, AIX, HP-UX, Cygwin, mingw, MSVC.
Portability problems not fixed by Gnulib:
Next: free_sized, Previous: free, Up: Functions in <stdlib.h> [Contents][Index]
10.46.19 free_aligned_sized ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.24.3.5
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on most non-C23 platforms:
glibc 2.42, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
Next: getenv, Previous: free_aligned_sized, Up: Functions in <stdlib.h> [Contents][Index]
10.46.20 free_sized ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.24.3.4
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on most non-C23 platforms:
glibc 2.42, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
Next: jrand48, Previous: grantpt, Up: Functions in <stdlib.h> [Contents][Index]
10.46.24 initstate ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/initstate.html
Gnulib module: random
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14, Android 4.4.
- This function is not declared on some platforms:
Cygwin 1.5.25.
Portability problems not fixed by Gnulib:
- This function crashes if the state buffer is unaligned on some platforms:
glibc 2.40/sparc.
- The first parameter is
unsigned long instead of unsigned int on
some platforms:
MidnightBSD 2.0.
- The third parameter is
long instead of size_t on some platforms:
MidnightBSD 2.0.
- This function makes out-of-bounds writes on some platforms:
Haiku.
Next: mblen, Previous: lrand48, Up: Functions in <stdlib.h> [Contents][Index]
10.46.33 malloc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/malloc.html
Gnulib module: malloc-posix
Portability problems fixed by Gnulib:
- On some platforms, when the function fails it does not set
errno:
mingw, MSVC 14.
- On some platforms, when the function fails it might set
errno
to EAGAIN instead of to ENOMEM. Although POSIX allows
EAGAIN, the malloc-posix module insists on ENOMEM
which also conforms to POSIX and is GNU-compatible:
Solaris 11.4.
- On some platforms,
malloc (n) can succeed even if n
exceeds PTRDIFF_MAX. Although this behavior is arguably
allowed by POSIX it can lead to behavior not defined by POSIX later,
so malloc-posix does not allow going over the limit.
Extension: Gnulib provides a module ‘malloc-gnu’ that substitutes a
malloc implementation that behaves more like the glibc implementation,
by fixing this portability problem:
malloc (0) returns NULL on success on some platforms:
AIX 7.3.
Next: mbtowc, Previous: mblen, Up: Functions in <stdlib.h> [Contents][Index]
10.46.35 mbstowcs ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbstowcs.html
Gnulib module: mbstowcs
Portability problems fixed by Gnulib:
- In the C or POSIX locales, this function can return
(size_t) -1
and set errno to EILSEQ:
glibc 2.35.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the Gnulib function mbstoc32s, provided by Gnulib module
mbstoc32s, operates on 32-bit wide characters and therefore does not
have this limitation.
Next: mkdtemp, Previous: mbtowc, Up: Functions in <stdlib.h> [Contents][Index]
10.46.37 memalignment ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.24.9.1
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on most non-C23 platforms:
glibc 2.42, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
To check whether a pointer P has alignment A,
Gnulib code typically tests (uintptr_t) P % A
instead of memalignment (P) % A.
See Other portability assumptions made by Gnulib.
Next: mkstemp, Previous: mkdtemp, Up: Functions in <stdlib.h> [Contents][Index]
10.46.39 mkostemp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkostemp.html
Documentation:
man mkostemp
Gnulib module: mkostemp
Portability problems fixed by Gnulib:
- This function is missing on many non-glibc platforms:
glibc 2.6, 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.4, Cygwin 1.7.5, mingw, MSVC 14, Android 5.1.
- This function is declared in
<unistd.h> instead of <stdlib.h>
on some platforms:
macOS 14.
- On platforms where
off_t is a 32-bit type, mkostemp may not work
correctly to create files larger than 2 GB. (Cf. AC_SYS_LARGEFILE.)
Portability problems not fixed by Gnulib:
The gnulib module clean-temp can create temporary files that will not
be left behind after signals such as SIGINT.
Next: mrand48, Previous: mkostemp, Up: Functions in <stdlib.h> [Contents][Index]
10.46.40 mkstemp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkstemp.html
Gnulib module: mkstemp
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- On platforms where
off_t is a 32-bit type, mkstemp may not work
correctly to create files 2 GiB and larger. See Large File Support.
- On some older platforms,
mkstemp can create a world or group
writable or readable file, if you haven’t set the process umask to
077. This is a security risk.
Portability problems not fixed by Gnulib:
The gnulib module clean-temp can create temporary files that will not
be left behind after signals such as SIGINT.
Next: posix_openpt, Previous: nrand48, Up: Functions in <stdlib.h> [Contents][Index]
10.46.43 posix_memalign ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_memalign.html
Gnulib module: posix_memalign
Although this function is superseded by aligned_alloc,
it is more portable to older systems that do not support C11.
See aligned_alloc.
Portability problems fixed by Gnulib:
- This function returns a null pointer if the size argument is zero:
AIX 7.3.
- This function produces misaligned results on some platforms:
OpenBSD 6.1.
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14, Android 4.1.
- If the alignment and size are absurdly large, this function crashes:
glibc 2.42.
The Gnulib module aligned-malloc provides functions for
allocating and freeing blocks of suitably aligned memory.
The Gnulib module pagealign_alloc provides a similar API for
allocating and freeing blocks of memory aligned on a system page boundary.
Next: ptsname, Previous: posix_memalign, Up: Functions in <stdlib.h> [Contents][Index]
10.46.44 posix_openpt ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_openpt.html
Gnulib module: posix_openpt
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, Solaris 9, Cygwin 1.5.x, mingw, MSVC 14, Android 4.4.
However, the replacement may fail with
ENOSYS or ENOENT on
some platforms.
Portability problems not fixed by Gnulib:
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 openpty provides
an easy-to-use API that does both at once.
Next: ptsname_r, Previous: posix_openpt, Up: Functions in <stdlib.h> [Contents][Index]
10.46.45 ptsname ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ptsname.html
Gnulib module: ptsname
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 14.
- This function fails to set errno on failure on some platforms:
FreeBSD 8.2.
Portability problems not fixed by Gnulib:
- On Solaris 11 2010-11, this function fails on all BSD-style /dev/pty*
device files.
- This function is not thread-safe on some platforms:
Cygwin 1.7.9.
Likewise, the gnulib replacement is not thread-safe.
Note that the Gnulib module ptsname_r is a version of this
function that is more likely to be thread-safe.
Next: putenv, Previous: ptsname, Up: Functions in <stdlib.h> [Contents][Index]
10.46.46 ptsname_r ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ptsname_r.html
Documentation:
Gnulib module: ptsname_r
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Mac OS X 10.12, FreeBSD 12.0, NetBSD 5.0, OpenBSD 7.9, Minix 3.1.8,
AIX 5.1, HP-UX 11, Solaris 11.4, Cygwin 1.7.9, mingw,
MSVC 14.
- When this function fails, it returns -1 instead of the error code
on some platforms:
macOS 14, FreeBSD 14.0, Android 4.3.
- When this function fails with
ERANGE, it stores an empty string as result
on some platforms:
NetBSD 10.0, Solaris 11 OmniOS.
Portability problems not fixed by Gnulib:
- When this function fails, it returns 0 and stores an empty string as result
on some platforms:
Cygwin 2.9.
Note: Portable programs should expect to find the error code as the
return value of this function, not as the value of errno.
This is needed for compatibility with musl libc and with the
forthcoming POSIX Issue 8.
Next: qsort, Previous: ptsname_r, Up: Functions in <stdlib.h> [Contents][Index]
10.46.47 putenv ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/putenv.html,
amended through https://www.austingroupbugs.net/view.php?id=1598.
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Environment-Access.html.
Note: POSIX putenv supports
adding or changing the value of an environment variable,
while glibc also supports removing an environment variable
(as if by unsetenv).
Gnulib module: putenv-gnu
Portability problems fixed by Gnulib:
- This function does not support removing an environment variable
on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, mingw, MSVC 14, Android 11.0.
Portability problems not fixed by Gnulib:
Next: quick_exit, Previous: qsort, Up: Functions in <stdlib.h> [Contents][Index]
10.46.49 qsort_r ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/qsort_r.html
Documentation:
man qsort_r
Gnulib module: qsort_r
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.7, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 1.7.x, mingw, MSVC 14, Android API level 35.
- This function has an incompatible API on some platforms:
FreeBSD 13.4.
Portability problems not fixed by Gnulib:
Next: rand, Previous: qsort_r, Up: Functions in <stdlib.h> [Contents][Index]
10.46.50 quick_exit ¶
ISO C23 specification:
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf section 7.24.4.7.
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/quick_exit.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-glibc platforms:
glibc 2.9, macOS 14, FreeBSD 6.4, NetBSD 5.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.3, Cygwin 1.7.x, mingw, MSVC 9, Android 4.4.
Next: realloc, Previous: rand_r, Up: Functions in <stdlib.h> [Contents][Index]
10.46.53 random ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/random.html
Gnulib module: random
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- This function is only defined as an inline function on some platforms:
Android 4.4.
- This function is not thread-safe on some platforms:
macOS 14, FreeBSD 13.2, Solaris 11.4, Cygwin 3.4.6, Haiku.
Portability problems not fixed by Gnulib:
- This function has a slightly incompatible declaration (the return type being
‘int’ instead of ‘long’) on some platforms:
Cygwin 1.5.25, Haiku.
- When ‘srandom’ was not called, this function returns a non-deterministic
sequence rather than a deterministic sequence of numbers on some platforms:
OpenBSD 7.4.
Next: reallocarray, Previous: random, Up: Functions in <stdlib.h> [Contents][Index]
10.46.54 realloc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/realloc.html
Gnulib module: realloc-posix
Portability problems fixed by Gnulib:
- On some platforms, when the function fails it does not set
errno:
FreeBSD 15 (for a size > 0x7000000000000000), mingw, MSVC 14.
- On some platforms, when the function fails it might set
errno
to EAGAIN instead of to ENOMEM. Although POSIX allows
EAGAIN, the realloc-posix module insists on ENOMEM
which also conforms to POSIX and is GNU-compatible:
Solaris 11.4.
- On some platforms,
realloc (p, n) can succeed even if n
exceeds PTRDIFF_MAX. Although this behavior is arguably
allowed by POSIX it is not compatible with GNU and
can lead to behavior not defined by POSIX later,
so realloc-posix does not allow going over the limit.
- It is not portable to call
realloc with a size of 0.
With a null pointer argument, this is the same ambiguity as malloc (0)
as to whether a successful call returns a null pointer or a pointer to a
new zero-sized memory region. Although both behaviors conform to POSIX,
realloc-posix insists on the latter behavior, which is
compatible with GNU.
With non-null p, behavior is a real mess for realloc (p, 0).
C23 says behavior is undefined.
C89 through C17 say a successful call returns either a null pointer
or a pointer to a new zero-sized memory region.
POSIX.1-2017 extends C99 by saying that if a successful call
returns a null pointer it
must also set errno to an implementation-defined value,
and POSIX.1-2024 extends C17 a bit further by saying that
such a call must set errno to EINVAL.
It is not known what POSIX.1-2024’s successor will say,
though presumably it will extend C23.
In practice, successful realloc (p, 0) calls
have one of the following behaviors:
- Free
p, do not change errno, and return a null pointer:
glibc 2.33–2.41 by default, Android.
- Free
p, possibly set errno, and return a null pointer:
glibc 1–2.1 if specially built with REALLOC_ZERO_BYTES_FREES=1,
glibc 2.1.1–2.32 by default,
mingw, MSVC 14.
- Free
p, set errno to EINVAL, and return a null pointer:
AIX 7.3 without _LINUX_SOURCE_COMPAT.
- Free
p and return a pointer to a new region of size zero:
AIX 7.3 with _LINUX_SOURCE_COMPAT, glibc 1–2.1 by default,
glibc 2.1.1–2.41 if specially built with REALLOC_ZERO_BYTES_FREES=0,
musl libc, macOS, FreeBSD, NetBSD, OpenBSD, Solaris, Cygwin.
Behaviors (3) and (4) conform to POSIX; behaviors (1) and (2) do not.
The realloc-posix module insists on behavior (4) as it is more
popular than (3) and is more useful in practice. Behavior (4) is the
only one of the four in which returning a null pointer means failure,
which is what non-expert programmers typically expect.
A program not suspecting these variations in semantics will either:
- Leak memory (the still-valid
p) if it unwisely does not check
for realloc failure, when it assumes behavior (1), (2) or (3) but the
system implements behavior (4).
- Falsely respond to memory exhaustion (if it wisely checks for
realloc
failure), or have double-free bugs (if it unwisely does not check),
when it assumes behavior (4) but the system implements (1), (2) or (3).
- When
realloc (p, 0) sets errno to EINVAL and returns null,
a POSIX.1-2024 application cannot tell whether the call has succeeded
and freed p, or has failed without freeing p.
This is only a theoretical problem, though, as the only practical
implementation with this behavior is AIX without _LINUX_SOURCE_COMPAT,
which behaves this way only when the call succeeds.
Portability problems not fixed by Gnulib:
- When not growing an already-allocated region, i.e.,
when
p points to a region of size psize and n <= psize,
realloc (p, n) can fail and return a null pointer:
glibc 2.42 and probably other platforms.
Next: realpath, Previous: realloc, Up: Functions in <stdlib.h> [Contents][Index]
10.46.55 reallocarray ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/reallocarray.html
Documentation:
Gnulib module: reallocarray
Portability problems fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.25, macOS 14, FreeBSD 10, NetBSD 7, OpenBSD 5.5, Minix 3.3.0, AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 1.7.x, mingw, MSVC 14, Android 9.0.
- On some platforms, when the function fails it might set
errno
to EAGAIN instead of to ENOMEM. Although POSIX allows
EAGAIN, the reallocarray module insists on ENOMEM
which also conforms to POSIX and is GNU-compatible:
Solaris 11.4.
- On some platforms,
reallocarray (p, n, s) can succeed even if
multiplying n by s would exceed PTRDIFF_MAX,
which can lead to undefined behavior later:
FreeBSD 13, NetBSD 9, OpenBSD 6, musl 1.2.
- It is not portable to call
reallocarray (p, n, s) when either n or s is zero,
as reallocarray has the same issues with zero sizes
that realloc does. See realloc.
Portability problems not fixed by Gnulib:
- When not growing an already-allocated region,
reallocarray, like realloc, can fail and return a null pointer:
glibc 2.42 and probably other platforms.
Next: secure_getenv, Previous: reallocarray, Up: Functions in <stdlib.h> [Contents][Index]
10.46.56 realpath ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/realpath.html
Gnulib module: canonicalize-lgpl
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- This function does not allow for a NULL ‘resolved’ parameter on
some platforms:
Mac OS X 10.5, FreeBSD 6.4, OpenBSD 4.4, Solaris 10.
- This function does not always return an absolute path on some
platforms:
Solaris 10.
- This function fails to detect trailing slashes on non-directories on
some platforms:
glibc 2.3.5, macOS 14, OpenBSD 6.0.
- This function fails to recognize non-directories or symlinks to non-directories
followed by ‘..’ on some platforms:
macOS 14, Cygwin 2.9.
- This function misbehaves on consecutive slashes on some platforms:
musl libc 1.2.2, AIX 7.
Portability problems not fixed by Gnulib:
- This function does not allow to determine the required size of output buffer;
the use of a non-NULL ‘resolved’ buffer is non-portable, since
PATH_MAX, if it is defined, is nothing more than a guess.
Next: seed48, Previous: realpath, Up: Functions in <stdlib.h> [Contents][Index]
10.46.57 secure_getenv ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/secure_getenv.html
Documentation:
Gnulib module: secure_getenv
Portability problems fixed by Gnulib:
- This function is missing on many non-glibc platforms:
glibc 2.16, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 5.2, Minix 3.2.0, AIX 7.1, HP-UX 11, Solaris 11.3, Cygwin 3.0, mingw, MSVC 14, Android 9.0.
Portability problems not fixed by Gnulib:
Next: setkey, Previous: seed48, Up: Functions in <stdlib.h> [Contents][Index]
10.46.59 setenv ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/setenv.html
Gnulib module: setenv
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
HP-UX 11.23, Solaris 9, mingw, MSVC 14.
- On some platforms, this function does not fail with
EINVAL when
passed an empty string or a string containing ‘=’:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 1.6, OpenBSD 7.9, Cygwin 1.5.x.
- On some platforms, this function removes a leading ‘=’ from the
value argument:
Cygwin 1.5.x.
Portability problems not fixed by Gnulib:
- Older versions of POSIX required that
setenv(NULL,"",0) gracefully
fail with EINVAL, but not all implementations guarantee this,
and the requirement was removed.
Next: setstate, Previous: setenv, Up: Functions in <stdlib.h> [Contents][Index]
10.46.60 setkey ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/setkey.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.34, NetBSD 5.0, OpenBSD 7.9, Minix 3.1.8, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function is not declared in
<stdlib.h>
(without -D_GNU_SOURCE) on some platforms:
glibc (at least 2.11–2.13).
- POSIX.1-2024 says this function is obsolescent and it is planned to be
removed in a future version.
Next: srand, Previous: setkey, Up: Functions in <stdlib.h> [Contents][Index]
10.46.61 setstate ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/setstate.html
Gnulib module: random
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14, Android 4.4.
- This function is not declared on some platforms:
Cygwin 1.5.25.
Portability problems not fixed by Gnulib:
- This function has a slightly incompatible declaration (the argument type being
‘const char *’ instead of ‘char *’) on some platforms:
macOS 14, AIX 7.1, HP-UX 11.31, Solaris 11.4, Solaris 11 OpenIndiana.
Next: strfromd, Previous: srand48, Up: Functions in <stdlib.h> [Contents][Index]
10.46.64 srandom ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/srandom.html
Gnulib module: random
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- This function is only defined as an inline function on some platforms:
Android 4.4.
Portability problems not fixed by Gnulib:
- This function has a slightly incompatible declaration (the return type being
‘long’ instead of ‘void’) on some platforms:
Cygwin 1.5.25.
- The parameter is
unsigned long instead of unsigned int on some
platforms:
MidnightBSD 2.0.
- This function has no effect on some platforms:
OpenBSD 7.4.
This platform has, instead, a function
srandom_deterministic.
Next: strfromf, Previous: srandom, Up: Functions in <stdlib.h> [Contents][Index]
10.46.65 strfromd ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: strfroml, Previous: strfromd, Up: Functions in <stdlib.h> [Contents][Index]
10.46.66 strfromf ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: strtod, Previous: strfromf, Up: Functions in <stdlib.h> [Contents][Index]
10.46.67 strfroml ¶
Documentation:
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on all non-glibc platforms:
glibc 2.24, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
Next: strtof, Previous: strfroml, Up: Functions in <stdlib.h> [Contents][Index]
10.46.68 strtod ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtod.html
Gnulib module: strtod or strtod-obsolete
Portability problems fixed by either Gnulib module strtod or strtod-obsolete:
- This function mis-parses strings with leading ‘+’ on some old platforms:
Old versions of Linux.
- This function returns a wrong end pointer on some old platforms.
- This function allows whitespace between ‘e’ and the exponent on
some platforms:
HP-UX 11.11.
- This function returns the wrong end pointer for ‘-0x’ on some
platforms:
glibc 2.4, Mac OS X 10.5, FreeBSD 6.2, AIX 7.1, Cygwin < 1.5.25-11.
- This function fails to parse Infinities and plain NaNs on some platforms:
OpenBSD 4.0, HP-UX 11.11, Solaris 9, mingw, MSVC 14.
- This function fails to parse ‘NaN()’ on some platforms:
glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.2, OpenBSD 4.0, AIX 7.1, HP-UX 11.11, Cygwin < 1.5.25-11, mingw, MSVC 14.
- This function fails to parse ‘NaN(n-char-sequence)’ on some
platforms:
OpenBSD 4.0, HP-UX 11.11, mingw, MSVC 14.
- This function parses ‘NaN(n-char-sequence)’, but returns
the wrong end pointer on some platforms:
glibc 2.4, AIX 7.1.
- This function misparses ‘nan(’ on some platforms:
macOS 10.6.6.
- This function returns ‘NaN’ for ‘-NaN’ on some platforms:
glibc 2.27, musl libc.
- This function fails to parse C99 hexadecimal floating point on some
platforms:
NetBSD 5.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, Solaris 11.4, mingw, MSVC 14.
- In hexadecimal floats, this function allows whitespace between ‘p’
and the exponent on some platforms:
HP-UX 11.31/ia64.
- This function returns the wrong end pointer for ‘0x1p’ on some
platforms:
AIX 7.1.
- This function fails to set
errno upon gradual underflow (resulting
in a denormalized number) on some platforms:
Cygwin 2.9.
Portability problems fixed by Gnulib module strtod-obsolete:
- This function is missing on some old platforms.
Portability problems not fixed by Gnulib:
- This function returns +0.0 (not −0.0) for negative underflow on some
platforms:
glibc 2.7, Cygwin 1.5.x, mingw, MSVC 14.
- This function cannot distinguish between “nan” and “-nan” on some
platforms:
glibc 2.7, mingw, MSVC 14.
- This function fails to correctly parse very long strings on some
platforms:
Mac OS X 10.5, FreeBSD 6.2, NetBSD 5.0, OpenBSD 4.0, Cygwin, mingw, MSVC 14.
- This function fails to set
errno upon gradual underflow (resulting
in a denormalized number) on some platforms:
MSVC 14.
- The replacement function does not always return correctly rounded results.
- If no conversion could be performed, this function sets
errno
to EINVAL on some platforms. Portable programs should check
for no conversion by comparing str to *endptr, not by
inspecting errno.
Next: strtol, Previous: strtod, Up: Functions in <stdlib.h> [Contents][Index]
10.46.69 strtof ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtof.html
Gnulib module: strtof
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, MSVC 9, Android 4.4.
- This function returns the wrong end pointer for ‘-0x’ on some
platforms:
glibc 2.4, Mac OS X 10.5, FreeBSD 6.2.
- This function fails to parse ‘NaN()’ on some platforms:
glibc 2.5, FreeBSD 6.2.
- This function misparses ‘nan(’ on some platforms:
macOS 10.6.6.
- This function fails to set
errno upon overflow on some platforms:
mingw 9.0.
- This function fails to set
errno upon underflow on some platforms:
Cygwin 2.9, mingw 5.0.
Portability problems not fixed by Gnulib:
- This function returns +0.0 (not −0.0) for negative underflow on some
platforms:
glibc 2.7, mingw, MSVC 14.
- This function cannot distinguish between “nan” and “-nan” on some
platforms:
glibc 2.7, mingw, MSVC 14.
- This function returns ‘NaN’ for ‘-NaN’ on some platforms:
glibc 2.27, musl libc.
- This function fails to correctly parse very long strings on some
platforms:
Mac OS X 10.5, FreeBSD 6.2, NetBSD 5.0, Cygwin, mingw, MSVC 14.
- This function fails to set
errno upon gradual underflow (resulting
in a denormalized number) on some platforms:
MSVC 14.
- The replacement function does not always return correctly rounded results.
- If no conversion could be performed, this function sets
errno
to EINVAL on some platforms. Portable programs should check
for no conversion by comparing str to *endptr, not by
inspecting errno.
Next: strtold, Previous: strtof, Up: Functions in <stdlib.h> [Contents][Index]
10.46.70 strtol ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtol.html
Gnulib module: strtol
Portability problems fixed by Gnulib:
- This function is missing on some old platforms.
- This function does not parse the leading ‘0’ when the input string is
"0x" and the base is 16 or 0 on some platforms:
Minix 3.3, mingw, MSVC 14.
- This function does not parse binary integers (with a ‘0b’ or ‘0B’
prefix) when the base is 2 or 0 on many platforms.
Portability problems not fixed by Gnulib:
- If no conversion could be performed, this function sets
errno
to EINVAL on some platforms. Portable programs should check
for no conversion by comparing str to *endptr, not by
inspecting errno.
Next: strtoll, Previous: strtol, Up: Functions in <stdlib.h> [Contents][Index]
10.46.71 strtold ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtold.html
Gnulib module: strtold
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, Solaris 9, older Cygwin 1.7.x, MSVC 9, Android 4.4.
- This function returns a struct, not a
long double, on some platforms:
HP-UX 11.31/hppa.
- This function always returns a wrong value on some platforms:
mingw 5.0.
- This function allows whitespace between ‘e’ and the exponent on
some platforms:
HP-UX 11.31/ia64.
- This function returns the wrong end pointer for ‘-0x’ on some
platforms:
glibc-2.3.2, Mac OS X 10.5, Haiku.
- This function fails to parse Infinities and plain NaNs on some platforms:
HP-UX 11.31/ia64.
- This function fails to parse ‘NaN()’ on some platforms:
glibc-2.3.2, mingw, Haiku.
- This function parses ‘NaN(n-char-sequence)’, but returns
the wrong end pointer on some platforms:
glibc-2.3.2, mingw, Haiku.
- This function returns ‘NaN’ for ‘-NaN’ on some platforms:
glibc 2.27, musl libc.
- This function fails to parse C99 hexadecimal floating point on some
platforms:
mingw.
- In hexadecimal floats, this function allows whitespace between ‘p’
and the exponent on some platforms:
HP-UX 11.31/ia64.
- This function fails to set
errno upon underflow on some platforms:
Cygwin 2.9.
- This function maps denormalized numbers to zero on some platforms:
Haiku 2024.
- This function leaks memory on mingw 5.0
and allocates an unbounded amount of stack on mingw 9.0.
Portability problems not fixed by Gnulib:
- This function fails to set
errno upon gradual underflow (resulting
in a denormalized number) on some platforms:
MSVC 14.
- The replacement function does not always return correctly rounded results.
- If no conversion could be performed, this function sets
errno
to EINVAL on some platforms. Portable programs should check
for no conversion by comparing str to *endptr, not by
inspecting errno.
Next: strtoul, Previous: strtold, Up: Functions in <stdlib.h> [Contents][Index]
10.46.72 strtoll ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoll.html
Gnulib module: strtoll
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
HP-UX 11.11, MSVC 9.
- This function does not parse the leading ‘0’ when the input string is
"0x" and the base is 16 or 0 on some platforms:
Minix 3.3, mingw, MSVC 14.
- This function does not parse binary integers (with a ‘0b’ or ‘0B’
prefix) when the base is 2 or 0 on many platforms.
Portability problems not fixed by Gnulib:
- If no conversion could be performed, this function sets
errno
to EINVAL on some platforms. Portable programs should check
for no conversion by comparing str to *endptr, not by
inspecting errno.
Next: strtoull, Previous: strtoll, Up: Functions in <stdlib.h> [Contents][Index]
10.46.73 strtoul ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoul.html
Gnulib module: strtoul
Portability problems fixed by Gnulib:
- This function is missing on some old platforms.
- This function does not parse the leading ‘0’ when the input string is
"0x" and the base is 16 or 0 on some platforms:
Minix 3.3, mingw, MSVC 14.
- This function does not parse binary integers (with a ‘0b’ or ‘0B’
prefix) when the base is 2 or 0 on many platforms.
Portability problems not fixed by Gnulib:
- If no conversion could be performed, this function sets
errno
to EINVAL on some platforms. Portable programs should check
for no conversion by comparing str to *endptr, not by
inspecting errno.
Next: system, Previous: strtoul, Up: Functions in <stdlib.h> [Contents][Index]
10.46.74 strtoull ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtoull.html
Gnulib module: strtoull
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
HP-UX 11.11, MSVC 9.
- This function does not parse the leading ‘0’ when the input string is
"0x" and the base is 16 or 0 on some platforms:
Minix 3.3, mingw, MSVC 14.
- This function does not parse binary integers (with a ‘0b’ or ‘0B’
prefix) when the base is 2 or 0 on many platforms.
Portability problems not fixed by Gnulib:
- If no conversion could be performed, this function sets
errno
to EINVAL on some platforms. Portable programs should check
for no conversion by comparing str to *endptr, not by
inspecting errno.
Next: unlockpt, Previous: strtoull, Up: Functions in <stdlib.h> [Contents][Index]
10.46.75 system ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/system.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-system-3.html
Gnulib module: system-posix
Portability problems fixed by Gnulib:
- The macros
WIFSIGNALED, WIFEXITED, WIFSTOPPED,
WTERMSIG, WEXITSTATUS, WNOHANG, WUNTRACED,
WSTOPSIG are not defined in <stdlib.h> (only in
<sys/wait.h>) on some platforms:
MirBSD 10.
Portability problems not fixed by Gnulib:
- On Windows platforms (excluding Cygwin), the command processor used by the
system function is cmd.exe, not /bin/sh. Accordingly,
the rules for quoting shell arguments containing spaces, quote or other special
characters are different.
Next: wcstombs, Previous: unlockpt, Up: Functions in <stdlib.h> [Contents][Index]
10.46.77 unsetenv ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/unsetenv.html
Gnulib module: unsetenv
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
AIX 5.1, HP-UX 11.23, Solaris 9, mingw, MSVC 14.
- This function has the return type ‘void’ instead of ‘int’ on some
platforms:
FreeBSD 6.0, NetBSD 1.6, OpenBSD 3.8.
- On some platforms, this function does not fail with
EINVAL when
passed an empty string or a string containing ‘=’:
FreeBSD 6.0, NetBSD 1.6, OpenBSD 4.7.
- This function removes only the first value association for the given
environment variable, not all of them, on some platforms:
Solaris 11.4, Haiku.
Portability problems not fixed by Gnulib:
- Older versions of POSIX required that
unsetenv(NULL) gracefully
fail with EINVAL, but not all implementations guarantee this,
and the requirement was removed.
Next: Functions in <utmpx.h>, Previous: Functions in <uchar.h>, Up: ISO C and POSIX Function Substitutes [Contents][Index]
10.69 Functions in <unistd.h> ¶
Next: access, Previous: _exit, Up: Functions in <unistd.h> [Contents][Index]
10.69.2 _Fork ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/_Fork.html
Documentation:
https://www.gnu.org/software/libc/manual/html_node/Creating-a-Process.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.33, macOS 14, FreeBSD 13.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.1, HP-UX 11.31, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14, Android API level 34.
Next: alarm, Previous: _Fork, Up: Functions in <unistd.h> [Contents][Index]
10.69.3 access ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/access.html
Gnulib module: access
Portability problems fixed by Gnulib:
- This function does not support the
X_OK mode on some platforms:
MSVC 14.
- This function does not reject trailing slashes on symlinks to non-directories
on some platforms:
Mac OS X 10.5.
Portability problems not fixed by Gnulib:
- This function uses the effective id instead of the real id on some
platforms:
Cygwin 1.5.x.
Other problems of this function:
- There is an inherent race between calling this function and performing
some action based on the results; you should think twice before trusting
this function, especially in a set-uid or set-gid program.
- This function does not have an option for not following symbolic links
(like
stat versus lstat). If you need this option, use
the Gnulib module faccessat with the AT_EACCESS flag.
- On Solaris, for the root user, any file is
X_OK even if the file
does not have the x permission bit set.
- On native Windows, files whose basename does not contain a ‘.’
cannot be executed through
execlp or execvp. Nevertheless,
this function may return true for such files.
- On Windows, different facilities for executing a program have different
ways of finding an executable file, by trying various suffixes. For
example,
execlp and execvp search for files with the
suffixes .com, .exe, .bat, .cmd, when the
file with the given file name does not exist. Whereas cmd.exe
searches according to the PATHEXT environment variable. This
function does not perform any search; it merely looks at the file with
the given file name.
Next: chdir, Previous: access, Up: Functions in <unistd.h> [Contents][Index]
10.69.4 alarm ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/alarm.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function has no impact if
SIGALRM is inherited as
ignored; programs should use signal (SIGALRM, SIG_DFL) if
it is important to ensure the alarm will fire.
- Use of this function in multi-threaded programs is not advised.
- This function is missing on some platforms:
mingw (2011), MSVC 14.
- This function is conditionally declared in the non-standard
<io.h> header on some platforms:
mingw (2012 or newer).
Next: close, Previous: chdir, Up: Functions in <unistd.h> [Contents][Index]
10.69.6 chown ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/chown.html
Gnulib module: chown
Portability problems fixed by Gnulib:
- Some platforms fail to detect trailing slash on non-directories, as in
chown("link-to-file/",uid,gid):
macOS 14, FreeBSD 7.2, AIX 7.3.1, Solaris 9.
- Some platforms fail to update the change time when at least one
argument was not −1, but no ownership changes resulted:
OpenBSD 7.7, Cygwin 2.9.0.
- When passed an argument of −1, some implementations really set the owner
user/group id of the file to this value, rather than leaving that id of the
file alone:
some very old platforms.
- When applied to a symbolic link, some implementations don’t dereference
the symlink, i.e. they behave like
lchown:
some very old platforms.
- This function is missing on some platforms; however, the replacement
always fails with
ENOSYS:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- This function sometimes fails with
EACCES when the failure is
due to lack of appropriate privileges (EPERM), not to
search permission denied on the file name prefix (EACCES):
Linux kernel 5.15 with glibc 2.35 and a CIFS v1 file system
(see https://bugs.gnu.org/65599).
Next: confstr, Previous: chown, Up: Functions in <unistd.h> [Contents][Index]
10.69.7 close ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/close.html
Gnulib module: close
Portability problems fixed by Gnulib:
- This function is declared in a different header file (namely,
<io.h>)
on some platforms:
MSVC 14.
- This function crashes when invoked with invalid arguments on some platforms:
MSVC 14.
- On Windows platforms (excluding Cygwin),
socket and accept
do not return file descriptors that can be closed by close.
Instead, closesocket must be used.
Portability problems not fixed by Gnulib:
Next: dup3, Previous: dup, Up: Functions in <unistd.h> [Contents][Index]
10.69.11 dup2 ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/dup2.html
Gnulib module: dup2
Portability problems fixed by Gnulib:
- This function is declared in a different header file (namely,
<io.h>)
on some platforms:
MSVC 14.
- This function always returns 0 for success on some platforms:
mingw, MSVC 14.
- This function can hang when duplicating an fd to itself on some platforms:
mingw, MSVC 14.
- This function crashes when invoked with invalid arguments on some platforms:
Cygwin 1.7.17, MSVC 14.
- This function crashes when invoked with valid arguments on some platforms:
Cygwin 1.7.25.
- This function fails with
EINVAL when duplicating an fd to itself:
Android.
- This function resets the
FD_CLOEXEC flag when duplicating an fd
to itself on some platforms:
Haiku.
- This function returns 0 for
dup2 (1, 1) on some platforms:
Cygwin 1.5.x.
- This function may return
-EBADF instead of -1 on some platforms:
Linux releases between July 2008 and May 2009 (versions 2.6.27 to 2.6.29).
- This function returns
EMFILE instead of EBADF for
large targets, which interferes with using
dup2(fd,fd)==fd) as the minimal EBADF filter:
AIX 7.1, FreeBSD 6.1, Cygwin 1.5.
Portability problems not fixed by Gnulib:
Next: encrypt, Previous: dup2, Up: Functions in <unistd.h> [Contents][Index]
10.69.12 dup3 ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/dup3.html
Documentation:
man dup3
Gnulib module: dup3
Portability problems fixed by Gnulib:
- This function is missing on many non-glibc platforms:
glibc 2.8, macOS 14, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 4.4.
- This function can crash on some platforms:
Cygwin 1.7.25.
- This function mistakenly succeeds when given two equal file descriptors on some platforms:
NetBSD 10.0, Haiku.
Portability problems not fixed by Gnulib:
Next: environ, Previous: dup3, Up: Functions in <unistd.h> [Contents][Index]
10.69.13 encrypt ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/encrypt.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 5.0, OpenBSD 7.9, Minix 3.1.8, Cygwin 2.9, mingw, MSVC 14, Android 9.0.
- This function is not declared in
<unistd.h>
(without -D_GNU_SOURCE) on some platforms:
glibc (at least 2.11–2.13).
- POSIX.1-2024 says this function is obsolescent and it is planned to be
removed in a future version.
Next: execl, Previous: encrypt, Up: Functions in <unistd.h> [Contents][Index]
10.69.14 environ ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/environ.html
Gnulib module: environ
Portability problems fixed by Gnulib:
- POSIX does not require this variable to be declared, and it is indeed not
declared on some platforms:
macOS 14, FreeBSD 14.0, NetBSD 5.0, OpenBSD 3.8, Solaris 11.4.
- On macOS, this variable is not declared. Up to Mac OS X 10.4, one can use
to get the variable declared. This does not work any more, however, in
shared libraries on macOS 10.5. Here is a workaround: Instead, one can use
#include <crt_externs.h>
#define environ (*_NSGetEnviron())
This works at all versions of macOS.
- On Cygwin in 64-bit mode, references to this variable cause a link error when
the option
-Wl,--disable-auto-import is in use.
Portability problems not fixed by Gnulib:
- The address of this variable is not a compile-time constant on some platforms:
mingw.
- Assigning NULL to
environ to clear all variables is not
portable; better is to assign environ to one-element array
containing a NULL pointer. That said, an empty environment is not
portable either, as some systems may require particular environment
variables (such as PATH) to be present in order to operate
consistently.
Next: execle, Previous: environ, Up: Functions in <unistd.h> [Contents][Index]
10.69.15 execl ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/execl.html
Gnulib module: execl
Portability problems fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not pass
command-line arguments correctly if they contain space, tab, backslash,
or double-quote characters.
- On Windows platforms (excluding Cygwin), this function spawns an asynchronous
child process and then exits the current process immediately. As a
consequence, the parent of the current process 1. may incorrectly proceed
as if its child had exited, and 2. will never see the child’s exit status.
- On Windows platforms (excluding Cygwin), the return type of this function is
intptr_t, not int.
Note: The Gnulib replacement for this function is not async-safe, that is,
it must not be invoked from a signal handler.
Portability problems not fixed by Gnulib:
- On some platforms, a script without executable permission is still run:
Cygwin 1.5.x.
Next: execlp, Previous: execl, Up: Functions in <unistd.h> [Contents][Index]
10.69.16 execle ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/execle.html
Gnulib module: execle
Portability problems fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not pass
command-line arguments correctly if they contain space, tab, backslash,
or double-quote characters.
- On Windows platforms (excluding Cygwin), this function spawns an asynchronous
child process and then exits the current process immediately. As a
consequence, the parent of the current process 1. may incorrectly proceed
as if its child had exited, and 2. will never see the child’s exit status.
- On Windows platforms (excluding Cygwin), the return type of this function is
intptr_t, not int.
Note: The Gnulib replacement for this function is not async-safe, that is,
it must not be invoked from a signal handler.
Portability problems not fixed by Gnulib:
- On some platforms, a script without executable permission is still run:
Cygwin 1.5.x.
Next: execv, Previous: execle, Up: Functions in <unistd.h> [Contents][Index]
10.69.17 execlp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/execlp.html
Gnulib module: execlp
Portability problems fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not pass
command-line arguments correctly if they contain space, tab, backslash,
or double-quote characters.
- On Windows platforms (excluding Cygwin), this function spawns an asynchronous
child process and then exits the current process immediately. As a
consequence, the parent of the current process 1. may incorrectly proceed
as if its child had exited, and 2. will never see the child’s exit status.
- On Windows platforms (excluding Cygwin), the return type of this function is
intptr_t, not int.
Portability problems not fixed by Gnulib:
- On some platforms, a script without executable permission is still run:
Cygwin 1.5.x.
Next: execve, Previous: execlp, Up: Functions in <unistd.h> [Contents][Index]
10.69.18 execv ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/execv.html
Gnulib module: execv
Portability problems fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not pass
command-line arguments correctly if they contain space, tab, backslash,
or double-quote characters.
- On Windows platforms (excluding Cygwin), this function spawns an asynchronous
child process and then exits the current process immediately. As a
consequence, the parent of the current process 1. may incorrectly proceed
as if its child had exited, and 2. will never see the child’s exit status.
- On Windows platforms (excluding Cygwin), the return type of this function is
intptr_t, not int.
Note: The Gnulib replacement for this function is not async-safe, that is,
it must not be invoked from a signal handler.
Portability problems not fixed by Gnulib:
- On some platforms, a script without executable permission is still run:
Cygwin 1.5.x.
Next: execvp, Previous: execv, Up: Functions in <unistd.h> [Contents][Index]
10.69.19 execve ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/execve.html
Gnulib module: execve
Portability problems fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not pass
command-line arguments correctly if they contain space, tab, backslash,
or double-quote characters.
- On Windows platforms (excluding Cygwin), this function spawns an asynchronous
child process and then exits the current process immediately. As a
consequence, the parent of the current process 1. may incorrectly proceed
as if its child had exited, and 2. will never see the child’s exit status.
- On Windows platforms (excluding Cygwin), the return type of this function is
intptr_t, not int.
Note: The Gnulib replacement for this function is not async-safe, that is,
it must not be invoked from a signal handler.
Portability problems not fixed by Gnulib:
- On some platforms, a script without executable permission is still run:
Cygwin 1.5.x.
Next: faccessat, Previous: execve, Up: Functions in <unistd.h> [Contents][Index]
10.69.20 execvp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/execvp.html
Gnulib module: execvp
Portability problems fixed by Gnulib:
- On Windows platforms (excluding Cygwin), this function does not pass
command-line arguments correctly if they contain space, tab, backslash,
or double-quote characters.
- On Windows platforms (excluding Cygwin), this function spawns an asynchronous
child process and then exits the current process immediately. As a
consequence, the parent of the current process 1. may incorrectly proceed
as if its child had exited, and 2. will never see the child’s exit status.
- On Windows platforms (excluding Cygwin), the return type of this function is
intptr_t, not int.
Portability problems not fixed by Gnulib:
- On some platforms, a script without executable permission is still run:
Cygwin 1.5.x.
Next: fchdir, Previous: execvp, Up: Functions in <unistd.h> [Contents][Index]
10.69.21 faccessat ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/faccessat.html
Gnulib module: faccessat
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, macOS 10.9, FreeBSD 7.4, NetBSD 6.1.5, OpenBSD 4.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14, Android 4.0.4.
- On some platforms,
faccessat (dfd, "file/", amode, flag)
succeeds instead of failing when file is not a directory.
macOS 14.
Portability problems not fixed by Gnulib:
- The replacement does not always take ACLs into account.
- The replacement is not safe to be used in libraries.
- The replacement is not thread-safe.
- The replacement does not support the
AT_SYMLINK_NOFOLLOW flag,
which is supported by GNU faccessat.
- On some platforms,
faccessat can mishandle AT_EACCESS
after a process starts as root and then becomes non-root:
GNU/Linux with glibc 2.32.
- This function does not support
AT_EMPTY_PATH:
Linux kernel 2.6.38.
- When
AT_EMPTY_PATH is used,
this function does not allow the file name to be a null pointer:
glibc 2.41, Linux kernel 6.10, Cygwin 3.6, FreeBSD 15.1.
Other problems of this function:
- There is an inherent race between calling this function and performing
some action based on the results; you should think twice before trusting
this function, especially in a set-uid or set-gid program.
Next: fdatasync, Previous: fchown, Up: Functions in <unistd.h> [Contents][Index]
10.69.24 fchownat ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fchownat.html
Gnulib module: fchownat
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
AIX 5.1, HP-UX 11, Cygwin 1.5.x, mingw, MSVC 14.
But the replacement function is not safe to be used in libraries and
is not thread-safe. Also, the replacement may fail to change
symlinks if
lchown is unsupported, or fail altogether if
chown is unsupported.
- This function is declared in
<sys/stat.h>, not in <unistd.h>,
on some platforms:
Android 4.3.
- Some platforms fail to detect trailing slash on non-directories, as in
fchown(dir,"link-to-file/",uid,gid,flag):
Solaris 9.
- Some platforms fail to update the change time when at least one
argument was not −1, but no ownership changes resulted:
OpenBSD 7.7.
- Some platforms mistakenly dereference symlinks when using
AT_SYMLINK_NOFOLLOW:
Linux kernel 2.6.17.
- This function does not fail for an empty filename on some platforms:
Linux with glibc < 2.11.
Portability problems not fixed by Gnulib:
- When
AT_EMPTY_PATH is used,
this function does not allow the file name to be a null pointer:
Linux kernel 6.10, Cygwin 3.6, FreeBSD 15.1.
- This function sometimes fails with
EACCES when the failure is
due to lack of appropriate privileges (EPERM), not to
search permission denied on the file name prefix (EACCES):
Linux kernel 5.15 with glibc 2.35 and a CIFS v1 file system
(see https://bugs.gnu.org/65599).
Next: fexecve, Previous: fchownat, Up: Functions in <unistd.h> [Contents][Index]
10.69.25 fdatasync ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fdatasync.html
Gnulib module: fdatasync
Portability problems fixed by Gnulib:
- This function is present but not declared on some platforms:
Mac OS X 10.7.
- This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 11.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 14, Android 2.2.
Portability problems not fixed by Gnulib:
- If the argument is a file descriptor that lacks write access,
such as a directory file descriptor, this function fails
with
EBADF on some platforms:
AIX 7.3, Cygwin 3.6.x.
Next: fork, Previous: fdatasync, Up: Functions in <unistd.h> [Contents][Index]
10.69.26 fexecve ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fexecve.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-glibc platforms:
macOS 14, FreeBSD 6.0, NetBSD 5.0, OpenBSD 7.9, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11 2010-11, Cygwin 1.5.x, mingw, MSVC 14, Android 8.1.
Next: fpathconf, Previous: fexecve, Up: Functions in <unistd.h> [Contents][Index]
10.69.27 fork ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fork.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- On some platforms,
fork followed by a call of the exec family
(execl, execlp, execle, execv, execvp,
or execve) is less efficient than vfork followed by the same
call. vfork is a variant of fork that has been introduced to
optimize the fork/exec pattern.
- On Windows platforms (excluding Cygwin), this function is not implemented; use
_spawnvp instead.
Next: getegid, Previous: ftruncate, Up: Functions in <unistd.h> [Contents][Index]
10.69.31 getcwd ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getcwd.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-getcwd.html
Gnulib module: getcwd or getcwd-lgpl
Portability problems fixed by either Gnulib module getcwd or
getcwd-lgpl:
- This function is declared in different header files (namely,
<io.h> or
<direct.h>) on some platforms:
mingw, MSVC 14.
- On glibc and Solaris 11.4 platforms,
getcwd (NULL, n) allocates memory for the result.
On some other platforms, this call is not allowed.
- On some platforms, the prototype for
getcwd uses int
instead of size_t for the size argument when using non-standard
headers, and the declaration is missing from <unistd.h>:
mingw, MSVC 14.
- On some platforms,
getcwd (buf, 0) crashes:
MSVC 14.
- On some platforms,
getcwd (buf, 0) fails with ERANGE
instead of the required EINVAL:
mingw.
Portability problems fixed by Gnulib module getcwd:
- This function does not handle long file names (greater than
PATH_MAX)
correctly on some platforms:
glibc on Linux 2.4.20, musl libc 1.2.2/powerpc64le, macOS 13, FreeBSD 6.4, NetBSD 10.0, OpenBSD 7.9, AIX 7.1.
Portability problems not fixed by Gnulib:
- When using
getcwd(NULL, nonzero), some platforms, such as glibc
or cygwin, allocate exactly nonzero bytes and fail with
ERANGE if it was not big enough, while other platforms, such as
FreeBSD, mingw, or MSVC 14, ignore the size argument and allocate whatever size
is necessary. If this call succeeds, an application cannot portably
access beyond the string length of the result.
Next: geteuid, Previous: getegid, Up: Functions in <unistd.h> [Contents][Index]
10.69.33 getentropy ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getentropy.html
Documentation:
Gnulib module: getentropy
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.24, Mac OS X 10.11, FreeBSD 11.0, NetBSD 9.3, OpenBSD 5.5, Minix 3.3, AIX 7.1, HP-UX 11.31, Solaris 11.0, Cygwin 1.7.x, mingw, MSVC 14, Android 8.1.
- This function is declared in
<sys/random.h>, not in <unistd.h>,
on some platforms:
macOS 14, Solaris 11.4, Android 9.0.
Portability problems not fixed by Gnulib:
Although this function is intended to produce random data, the data’s
security properties may not be appropriate for your application.
For example, identical “random” data streams might be produced by
rebooted virtual machines. If this is of concern you may need to use
additional techniques such as hedging.
Related modules include getrandom, which has a more-flexible
but more-complex API, and crypto/gc-random, which is likely a
better match for code already using the other crypto APIs.
Next: gethostid, Previous: getgid, Up: Functions in <unistd.h> [Contents][Index]
10.69.36 getgroups ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getgroups.html
Gnulib module: getgroups
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- On some platforms, this function fails to reject a negative count,
even though that is less than the size that would be returned:
macOS 14, FreeBSD 13.0.
- On NeXTstep 3.2,
getgroups (0, NULL) always fails. See macro
‘AC_FUNC_GETGROUPS’.
- On very old systems, this function operated on an array of ‘int’,
even though that was a different size than an array of ‘gid_t’.
Portability problems not fixed by Gnulib:
- This function is unsafe to call between
fork and exec if
the parent process is multi-threaded.
- It is unspecified whether the effective group id will be included in
the returned list, nor whether the list will be sorted in any
particular order. For that matter, some platforms include the
effective group id twice, if it is also a member of the current
supplemental group ids.
The Gnulib module mgetgroups provides a similar API.
Next: getlogin, Previous: gethostid, Up: Functions in <unistd.h> [Contents][Index]
10.69.38 gethostname ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/gethostname.html
Gnulib module: gethostname
Portability problems fixed by Gnulib:
- This function is declared in
<winsock2.h> instead of <unistd.h>
on some platforms:
MSVC 14.
- On mingw and MSVC 14, this function has a prototype that differs from that
specified by POSIX, and it is defined only in the ws2_32 library.
Portability problems not fixed by Gnulib:
- This function’s second argument type is
int instead of size_t
on some platforms:
Solaris 10, Solaris 11 OmniOS.
- If the given buffer is too small for the host name, some implementations
fail with
EINVAL, instead of returning a truncated host name.
Next: getlogin_r, Previous: gethostname, Up: Functions in <unistd.h> [Contents][Index]
10.69.39 getlogin ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getlogin.html
Gnulib module: getlogin
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
older mingw, MSVC 14.
- This function is not declared unless
_POSIX is defined on some platforms:
mingw.
- This function returns the value of the
LOGNAME environment variable
and is therefore arbitrarily fakeable:
musl libc 1.2.5.
Portability problems not fixed by Gnulib:
- This function returns an empty string even when standard input is a tty
on some platforms:
HP-UX 11.11.
- When there are several user names with the same user ID,
this function may return, instead of the user name that logged in,
another user name that has the same user ID, on some platforms:
Linux and others.
Next: getopt, Previous: getlogin, Up: Functions in <unistd.h> [Contents][Index]
10.69.40 getlogin_r ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getlogin_r.html
Gnulib module: getlogin_r
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, Minix 3.1.8, mingw, MSVC 14, Android 8.1.
- This function is not declared unless
_REENTRANT is defined,
on some platforms:
HP-UX 11.
- This function returns a truncated result, instead of failing with error code
ERANGE, when the buffer is not large enough, on some platforms:
macOS 14.
- This function returns the value of the
LOGNAME environment variable
and is therefore arbitrarily fakeable:
musl libc 1.2.5.
Portability problems not fixed by Gnulib:
- This function has an incompatible declaration on some platforms:
FreeBSD 12.0, MidnightBSD 2.0, Solaris 11.4 (when
_POSIX_PTHREAD_SEMANTICS is not defined).
- This function fails even when standard input is a tty on some platforms:
HP-UX 11.11.
- This function fails with error code
EINVAL instead of ERANGE when
the second argument is zero on some platforms:
HP-UX 11.31.
- This function fails with error code
ENOMEM instead of ERANGE on
some platforms:
Haiku.
- When there are several user names with the same user ID,
this function may return, instead of the user name that logged in,
another user name that has the same user ID, on some platforms:
Linux and others.
Next: getpgid, Previous: getlogin_r, Up: Functions in <unistd.h> [Contents][Index]
10.69.41 getopt ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getopt.html
LSB specification:
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
The module getopt-gnu has support for “long options” and for
“options that take optional arguments”. Compared to the API defined by POSIX,
it adds a header file <getopt.h> and a function getopt_long.
Portability problems fixed by either Gnulib module getopt-posix or getopt-gnu:
- This function is missing on some platforms:
MSVC 14.
- The value of
optind after a missing required argument is wrong
on some platforms:
macOS 14, AIX 7.1, mingw.
Portability problems fixed by Gnulib module getopt-gnu:
- The function
getopt does not support the ‘+’ flag in the options
string on some platforms:
macOS 14, AIX 5.2, HP-UX 11, Solaris 11 2010-11.
- The function
getopt does not obey the combination of ‘+’
and ‘:’ flags in the options string on some platforms:
glibc 2.11.
- The function
getopt does not obey the ‘-’ flag in the options
string when POSIXLY_CORRECT is set on some platforms:
Cygwin 1.7.0.
- The function
getopt does not support options with optional arguments
on some platforms:
macOS 14, OpenBSD 4.0, AIX 5.2, HP-UX 11, Solaris 11 2010-11, Cygwin 1.5.x.
- The function
getopt_long is missing on some platforms:
AIX 5.1, HP-UX 11, Solaris 9, MSVC 14.
- The function
getopt_long does not support abbreviated long options
where all disambiguations are equivalent on some platforms:
OpenBSD 5.0.
- The function
getopt_long_only is missing on some platforms:
FreeBSD 5.2.1, NetBSD 10.0, AIX 5.1, HP-UX 11, Solaris 9, mingw, MSVC 14.
- This function crashes if the option string includes
W; on some
platforms:
glibc 2.14.
Portability problems not fixed by Gnulib:
- The default behavior of the glibc implementation of
getopt allows
mixing option and non-option arguments on the command line in any order.
Other implementations, such as the one in Cygwin, enforce strict POSIX
compliance: they require that the option arguments precede the non-option
arguments. This is something to watch out in your program’s
testsuite.
- The glibc implementation allows a complete reset of the environment,
including re-checking for
POSIXLY_CORRECT, by setting
optind to 0. Several BSD implementations provide optreset,
causing a reset by setting it non-zero, although it does not
necessarily re-read POSIXLY_CORRECT. Solaris getopt does
not support either reset method, but does not maintain state that
needs the extra level of reset.
- On some platforms, this function does not set the stream error
indicator on attempts to write to a read-only stream:
glibc 2.13, Cygwin 1.7.9.
Next: getresuid, Previous: getppid, Up: Functions in <unistd.h> [Contents][Index]
10.69.46 getresgid ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getresgid.html
Documentation:
man getresgid
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14.
Next: getsid, Previous: getresgid, Up: Functions in <unistd.h> [Contents][Index]
10.69.47 getresuid ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/getresuid.html
Documentation:
man getresuid
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
macOS 14, NetBSD 10.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, Solaris 11.4, Cygwin 2.9, mingw, MSVC 14.
Next: lchown, Previous: getuid, Up: Functions in <unistd.h> [Contents][Index]
10.69.50 isatty ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/isatty.html
Gnulib module: isatty
Portability problems fixed by Gnulib:
- This function is declared in a different header file (namely,
<io.h>)
on some platforms:
MSVC 14.
- On native Windows, this function also returns true for character devices such
as NUL.
- On native Windows, this function returns false for Cygwin consoles.
- This function crashes when invoked with invalid arguments on some platforms:
MSVC 14.
Portability problems not fixed by Gnulib:
Next: link, Previous: isatty, Up: Functions in <unistd.h> [Contents][Index]
10.69.51 lchown ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/lchown.html
Gnulib module: lchown
Portability problems fixed by Gnulib:
- This function is missing on some platforms; however, the replacement
fails with
ENOSYS:
mingw, MSVC 14.
- This function is missing on some platforms; however, the replacement
fails on symlinks:
Minix 3.2.1.
- Some platforms fail to detect trailing slash on non-directories, as in
lchown("link-to-file/",uid,gid):
FreeBSD 7.2, Solaris 9.
- Some platforms fail to update the change time when at least one
argument was not −1, but no ownership changes resulted:
OpenBSD 7.7.
Portability problems not fixed by Gnulib:
- This function sometimes fails with
EACCES when the failure is
due to lack of appropriate privileges (EPERM), not to
search permission denied on the file name prefix (EACCES):
Linux kernel 5.15 with glibc 2.35 and a CIFS v1 file system
(see https://bugs.gnu.org/65599).
Next: lockf, Previous: link, Up: Functions in <unistd.h> [Contents][Index]
10.69.53 linkat ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/linkat.html
Gnulib module: linkat
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, Mac OS X 10.9, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14, Android 4.4.
But the replacement function is not safe to be used in libraries and
is not thread-safe.
- This function fails to directly hardlink symlinks on some platforms:
Mac OS X 10.10.
- This function fails to reject trailing slashes on non-directories on
some platforms:
macOS 14, AIX 7.1, Solaris 11.3.
- This functions does not support
AT_SYMLINK_FOLLOW on some platforms:
Linux kernel 2.6.17.
Portability problems not fixed by Gnulib:
linkat (fd, "directory", fd, "symlink/" ...) sets errno
to EINVAL instead of EEXIST or ENOTDIR on some
platforms:
GNU/Hurd with glibc 2.41.
Next: nice, Previous: lockf, Up: Functions in <unistd.h> [Contents][Index]
10.69.55 lseek ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/lseek.html
Gnulib module: lseek
Portability problems fixed by Gnulib:
- On some platforms,
lseek (fd, offset, SEEK_DATA) returns a value
greater than offset even when offset addresses data:
macOS 14.
- This function is declared in a different header file (namely,
<io.h>)
on some platforms:
MSVC 14.
- On platforms where
off_t is a 32-bit type, lseek does not work
correctly with files 2 GiB and larger. See Large File Support.
- This function mistakenly succeeds on pipes on some platforms: mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- POSIX does not specify which file descriptors support seeking and which don’t.
In practice, regular files and block devices support seeking, and ttys, pipes,
and most character devices don’t support it.
- Some systems do not support
SEEK_DATA and SEEK_HOLE:
AIX, HP-UX, Microsoft Windows, NetBSD, OpenBSD, Cygwin 3.4.6.
- Some systems have a buggy
SEEK_DATA and SEEK_HOLE,
and Gnulib works around the problem via #undef SEEK_DATA
and #undef SEEK_HOLE:
FreeBSD 13, macOS 12.
Next: posix_close, Previous: pipe, Up: Functions in <unistd.h> [Contents][Index]
10.69.64 pipe2 ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pipe2.html
Documentation:
man pipe2
Gnulib module: pipe2
Portability problems fixed by Gnulib:
- This function is missing on many non-glibc platforms:
glibc 2.8, macOS 14, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.1, mingw, MSVC 14, Android 2.2.
But the replacement function is not atomic; this matters in multi-threaded
processes that spawn child processes.
Portability problems not fixed by Gnulib:
- This function crashes rather than failing with
EMFILE if no
resources are left on some platforms:
Cygwin 1.7.9.
Note: This function portably supports the O_NONBLOCK flag only if the
gnulib module nonblocking is also used.
Next: pread, Previous: pipe2, Up: Functions in <unistd.h> [Contents][Index]
10.69.65 posix_close ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/posix_close.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
glibc 2.42, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.3.0, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
Next: read, Previous: pread, Up: Functions in <unistd.h> [Contents][Index]
10.69.67 pwrite ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/pwrite.html
Gnulib module: pwrite
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- On platforms where
off_t is a 32-bit type, this function may not
work correctly on files 2 GiB and larger. See Large File Support.
- This function does not fail when an invalid (negative) offset is passed when
large file support is enabled on some platforms:
HP-UX 11.11.
- This function uses an arbitrary offset instead of the
off_t argument
when large file support is enabled on some platforms:
HP-UX 11.11.
Portability problems not fixed by Gnulib:
Next: readlink, Previous: pwrite, Up: Functions in <unistd.h> [Contents][Index]
10.69.68 read ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/read.html
Gnulib module: read, stdio-h, nonblocking
Portability problems fixed by Gnulib module read:
- This function is declared in a different header file (namely,
<io.h>)
on some platforms:
mingw, MSVC 14.
- This function crashes when invoked with invalid arguments on some platforms:
MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When reading from a non-blocking pipe whose buffer is empty, this function
fails with
errno being set to EINVAL instead of EAGAIN on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- This function may fail with error
EINTR, even in programs that don’t
install any signal handlers, on some platforms:
macOS 14.
For handling EINTR, Gnulib provides a module ‘safe-read’ with a
function safe_read.
Next: readlinkat, Previous: read, Up: Functions in <unistd.h> [Contents][Index]
10.69.69 readlink ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/readlink.html
Gnulib module: readlink
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw, MSVC 14.
- Some platforms mistakenly succeed on file names ending in /:
FreeBSD 7.2, Solaris 9, macOS 14.
- On some platforms, this function returns
int instead of
ssize_t:
glibc 2.4, FreeBSD 6.0, OpenBSD 7.9, Cygwin 1.5.x, AIX 7.1.
- For the file name /dev/null, this function returns \Device\Null,
which is unusable, on some platforms:
Cygwin 3.3.6.
Portability problems mostly fixed by Gnulib:
- On some platforms, this function fails and sets
errno to
ERANGE rather than returning truncated contents:
AIX 7.2, HP-UX 11.
The Gnulib replacement normally works as POSIX requires by returning
the truncated contents. However, if the full link contents are
unreasonably large (more than 4000 bytes) the replacement clears the
entire buffer and returns the buffer size; although this is not a
complete fix, it suffices for typical callers, which ignore the buffer
contents anyway.
Portability problems not fixed by Gnulib:
- This function always fails on platforms that don’t support symlinks:
mingw, MSVC 14.
- When this function is called on a directory: In the case of NFS mounted
directories, Cygwin sets
errno to ENOENT or EIO instead of
EINVAL. To avoid this problem, check for a directory before calling
this function.
- When this function is called on a file that is not a symbolic link:
Cygwin may set errno to
EACCES instead of EINVAL.
- When this function fails because it is called on an existing
non-directory’s name concatenated to /,
it sets
errno to EINVAL:
AIX 7.2.
- Symlink contents do not always have a trailing null byte, and there is
no indication if symlink contents were truncated if the return value
matches the length. Furthermore,
Linux sets
errno to EINVAL if the
requested length is zero.
Use the gnulib module areadlink for
improved ability to read symlink contents.
Next: rmdir, Previous: readlink, Up: Functions in <unistd.h> [Contents][Index]
10.69.70 readlinkat ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/readlinkat.html
Gnulib module: readlinkat
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, Mac OS X 10.9, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14, Android 4.4.
But the replacement function is not safe to be used in libraries and
is not thread-safe.
- Some platforms mistakenly succeed on file names ending in /:
macOS 14.
- On some platforms, this function returns
int instead of
ssize_t:
AIX 7.1.
- For the file name /dev/null, this function returns \Device\Null,
which is unusable, on some platforms:
Cygwin 3.3.6.
Portability problems mostly fixed by Gnulib:
- On some platforms, this function fails and sets
errno to
ERANGE rather than returning truncated contents:
AIX 7.2.
The Gnulib replacement normally works as POSIX requires by returning
the truncated contents. However, if the full link contents are
unreasonably large (more than 4000 bytes) the replacement clears the
entire buffer and returns the buffer size; although this is not a
complete fix, it suffices for typical callers, which ignore the buffer
contents anyway.
Portability problems not fixed by Gnulib:
- Behaviors differ when this function is called on an empty file name.
On most platforms, the function fails with error
ENOENT.
On Cygnus 3.4.6, the function fails with error EBADF instead.
On GNU/Linux (kernel version 2.6.39 or later), when dirfd is
nonnegative the function instead reads directly from dirfd,
and this succeeds if dirfd corresponds to a symbolic link that
was opened with O_PATH | O_NOFOLLOW.
- This function always fails on platforms that don’t support symlinks:
mingw, MSVC 14.
- When this function is called on a directory: In the case of NFS mounted
directories, Cygwin sets
errno to ENOENT or EIO instead of
EINVAL. To avoid this problem, check for a directory before calling
this function.
- When this function is called on a file that is not a symbolic link:
Cygwin may set errno to
EACCES instead of EINVAL.
- When this function fails because it is called on an existing
non-directory’s name concatenated to /,
it sets
errno to EINVAL:
AIX 7.2.
- Symlink contents do not always have a trailing null byte, and there is
no indication if symlink contents were truncated if the return value
matches the length. Furthermore,
Linux sets
errno to EINVAL if the
requested length is zero.
Use the gnulib module areadlink for
improved ability to read symlink contents.
Next: setegid, Previous: readlinkat, Up: Functions in <unistd.h> [Contents][Index]
10.69.71 rmdir ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/rmdir.html
Gnulib module: rmdir
Portability problems fixed by Gnulib:
- This function is declared in different header files (namely,
<io.h> or
<direct.h>) on some platforms:
mingw, MSVC 14.
- This function mistakenly removes a directory with
rmdir("dir/./") on some platforms:
Cygwin 1.5.x.
- This function fails with
EINVAL instead of the expected
ENOTDIR for rmdir("file/") on some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- When
rmdir fails because the specified directory is not empty, the
errno value is system dependent.
- POSIX requires that
rmdir("link-to-empty/") remove empty
and leave link-to-empty as a dangling symlink. This is
counter-intuitive, so some systems fail with ENOTDIR instead:
glibc
Next: swab, Previous: setuid, Up: Functions in <unistd.h> [Contents][Index]
10.69.82 sleep ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/sleep.html
Gnulib module: sleep
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
mingw (2005 or newer), MSVC 14.
- This function takes milliseconds as argument and returns
void on some
platforms:
mingw (2005 and older).
- This function cannot sleep longer than 49.7 days on some platforms:
Cygwin 1.5.x.
Portability problems not fixed by Gnulib:
- According to POSIX, the
sleep function may interfere with the program’s
use of the SIGALRM signal. On Linux, it doesn’t; on other platforms,
it may.
Next: symlinkat, Previous: swab, Up: Functions in <unistd.h> [Contents][Index]
10.69.84 symlink ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/symlink.html
Gnulib module: symlink
Portability problems fixed by Gnulib:
- On some systems,
symlink(value,"name/") mistakenly creates a
symlink:
macOS 14, FreeBSD 7.2, AIX 7.1, Solaris 9.
- This function is missing on some platforms; however, the replacement
always fails with
EPERM:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- Some file systems do not support symbolic links.
- If the target is the empty string, this function can create an empty
symbolic link instead of failing with
ENOENT as GNU/Linux does:
FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.8, Solaris 11.4.
On Solaris, the empty symbolic link "" resolves like "." does;
on the other operating systems, resolution fails with ENOENT.
Next: sync, Previous: symlink, Up: Functions in <unistd.h> [Contents][Index]
10.69.85 symlinkat ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/symlinkat.html
Gnulib module: symlinkat
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, 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 10, Cygwin 1.5.x, mingw, MSVC 14, Android 4.4.
But the replacement function is not safe to be used in libraries and
is not thread-safe.
- Some platforms declare this function in
stdio.h instead of
unistd.h:
Cygwin 1.7.1.
- On some systems,
symlinkat(value, fd, "name/") mistakenly creates a
symlink:
macOS 14, AIX 7.1.
Portability problems not fixed by Gnulib:
- This function always fails with
ENOSYS on platforms that don’t
support symlinks:
mingw, MSVC 14.
- If the target is the empty string, this function can create an empty
symbolic link instead of failing with
ENOENT as GNU/Linux does:
FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.8, Solaris 11.4.
On Solaris, the empty symbolic link "" resolves like "." does;
on the BSDs, resolution fails with ENOENT.
Next: unlink, Previous: ttyname, Up: Functions in <unistd.h> [Contents][Index]
10.69.92 ttyname_r ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/ttyname_r.html
Gnulib module: ttyname_r
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, Minix 3.1.8, mingw, MSVC 14.
- This function is not declared unless
_REENTRANT is defined,
on some platforms:
HP-UX 11.
- This function has an incompatible declaration on some platforms:
Solaris 11.4 (when
_POSIX_PTHREAD_SEMANTICS is not defined).
- This function refuses to do anything when the output buffer is less than 128
bytes large, on some platforms:
Solaris 11 2010-11.
- This function is just a stub that produces an error message on standard error
on some platforms:
Android 4.3.
Portability problems not fixed by Gnulib:
Next: unlinkat, Previous: ttyname_r, Up: Functions in <unistd.h> [Contents][Index]
10.69.93 unlink ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/unlink.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-unlink-3.html
Gnulib module: unlink
Portability problems fixed by Gnulib:
- This function is declared in a different header file (namely,
<stdio.h>)
on some platforms:
MSVC 14.
- Some systems mistakenly succeed on
unlink("link-to-file/"):
GNU/Hurd, FreeBSD 7.2, AIX 7.1, Solaris 9.
- On Mac OS X 10.10, in a writable HFS mount,
unlink("..") succeeds
without doing anything.
Portability problems not fixed by Gnulib:
- Some systems allow a superuser to unlink directories, even though this
can cause file system corruption. The error given if a process is not
permitted to unlink directories varies across implementations; it is
not always the POSIX value of
EPERM. Meanwhile, if a process
has the ability to unlink directories, POSIX requires that
unlink("symlink-to-dir/") remove dir and leave
symlink-to-dir dangling; this behavior is counter-intuitive.
The gnulib module unlinkdir can help determine whether code must be
cautious of unlinking directories.
- Removing an open file is non-portable: On Unix this allows the programs that
have the file already open to continue working with it; the file’s storage
is only freed when the no process has the file open any more. On Windows,
the attempt to remove an open file fails.
Next: write, Previous: unlink, Up: Functions in <unistd.h> [Contents][Index]
10.69.94 unlinkat ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/unlinkat.html
Gnulib module: unlinkat
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8,
AIX 5.1, HP-UX 11, Cygwin 1.5.x, mingw, MSVC 14.
But the replacement function is not safe to be used in libraries and
is not thread-safe.
- This function is declared in
<fcntl.h>, not in <unistd.h>,
on some platforms:
Cygwin 1.7.1, Android 4.3.
- On Mac OS X 10.10, in a writable HFS mount,
unlinkat(fd, "..", 0) succeeds
without doing anything.
- Some systems mistakenly succeed on
unlinkat(fd,"file/",flag):
GNU/Hurd, Solaris 9.
Portability problems not fixed by Gnulib:
- When
unlinkat(fd,name,AT_REMOVEDIR) fails because the specified
directory is not empty, the errno value is system dependent.
- POSIX requires that
unlinkdir(fd,"link-to-empty/",AT_REMOVEDIR)
remove empty and leave link-to-empty as a dangling
symlink. This is counter-intuitive, so some systems fail with
ENOTDIR instead:
glibc
- Some systems allow a superuser to unlink directories, even though this
can cause file system corruption. The error given if a process is not
permitted to unlink directories varies across implementations; it is
not always the POSIX value of
EPERM. Meanwhile, if a process
has the ability to unlink directories, POSIX requires that
unlinkat(fd,"symlink-to-dir/",0) remove dir and leave
symlink-to-dir dangling; this behavior is counter-intuitive.
The gnulib module unlinkdir can help determine whether code must be
cautious of unlinking directories.
- Removing an open file is non-portable: On Unix this allows the programs that
have the file already open to continue working with it; the file’s storage
is only freed when the no process has the file open any more. On Windows,
the attempt to remove an open file fails.
Previous: unlinkat, Up: Functions in <unistd.h> [Contents][Index]
10.69.95 write ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/write.html
Gnulib module: write, nonblocking, sigpipe
Portability problems fixed by Gnulib module write:
- This function is declared in a different header file (namely,
<io.h>)
on some platforms:
mingw, MSVC 14.
- This function crashes when invoked with invalid arguments on some platforms:
MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module nonblocking:
- When writing to a non-blocking pipe whose buffer is full, this function fails
with
errno being set to ENOSPC instead of EAGAIN on some
platforms:
mingw, MSVC 14.
- When writing to a non-blocking pipe on which no reader is currently waiting
an amount of bytes that exceeds the pipe buffer’s size, then—even if the
pipe’s buffer is empty—this function fails, instead of performing a partial
write into the pipe buffer, on some platforms:
mingw, MSVC 14.
Portability problems fixed by Gnulib module stdio-h, together with module sigpipe:
- When writing to a pipe with no readers, this function fails with error
EINVAL, instead of obeying the current SIGPIPE handler, on
some platforms:
mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- This function may fail with error
EINTR, even in programs that don’t
install any signal handlers, on some platforms:
macOS 14.
For handling EINTR, Gnulib provides a module ‘safe-write’ with a
function safe_write.
Next: Functions in <wctype.h>, Previous: Functions in <utmpx.h>, Up: ISO C and POSIX Function Substitutes [Contents][Index]
10.71 Functions in <wchar.h> ¶
Next: fgetwc, Up: Functions in <wchar.h> [Contents][Index]
10.71.1 btowc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/btowc.html
Gnulib module: btowc
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- This function returns WEOF for a NUL argument on some platforms:
Cygwin 1.7.2.
- In the C or POSIX locales, this function is not consistent with
Gnulib’s
mbrtowc and can return WEOF:
glibc 2.35, MirOS BSD #10.
- In the C or POSIX locales, this function is not consistent with
mbrtowc
on some platforms:
Cygwin 3.4.x, mingw with MSVCRT.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the Gnulib function btoc32, provided by Gnulib module
btoc32, operates on 32-bit wide characters and therefore does not have
this limitation.
Next: fwide, Previous: fputwc, Up: Functions in <wchar.h> [Contents][Index]
10.71.5 fputws ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fputws.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: fwprintf, Previous: fputws, Up: Functions in <wchar.h> [Contents][Index]
10.71.6 fwide ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fwide.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x, MSVC 14.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
fwide is not guaranteed to be able to change a file stream’s mode
to a different mode than the current one.
Next: fwscanf, Previous: fwide, Up: Functions in <wchar.h> [Contents][Index]
10.71.7 fwprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fwprintf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14,
Haiku.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- In the C or POSIX locales, the
%c and %s conversions may fail
on some platforms:
glibc 2.35.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: getwc, Previous: fwprintf, Up: Functions in <wchar.h> [Contents][Index]
10.71.8 fwscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/fwscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-fwscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: mbrtowc, Previous: getwchar, Up: Functions in <wchar.h> [Contents][Index]
10.71.11 mbrlen ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbrlen.html
Gnulib module: mbrlen
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- In the C or POSIX locales, this function can return
(size_t) -1
and set errno to EILSEQ:
glibc 2.35.
- This function returns 0 instead of
(size_t) -2 when the input
is empty:
glibc 2.19.
- This function returns
(size_t) -1 instead of (size_t) -2
when the input is empty:
AIX 5.1.
- This function does not put the state into non-initial state when parsing an
incomplete multibyte character on some platforms:
AIX 5.1.
- This function returns the total number of bytes that make up the multibyte
character, not the number of bytes that were needed to complete the multibyte
character, on some platforms:
HP-UX 11.11, Solaris 11 2010-11.
- This function returns
(size_t) -2 instead of (size_t) -1
for some invalid byte sequences on some platforms:
NetBSD 10.
- This function may not return 0 when parsing the NUL character on some platforms:
Solaris 9.
Portability problems not fixed by Gnulib:
Next: mbsinit, Previous: mbrlen, Up: Functions in <wchar.h> [Contents][Index]
10.71.12 mbrtowc ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbrtowc.html
Gnulib module: mbrtowc
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- In the C or POSIX locales, this function can return
(size_t) -1
and set errno to EILSEQ:
glibc 2.35.
- This function returns 0 instead of
(size_t) -2 when the input
is empty:
glibc 2.19,
mingw with UCRT, MSVC 14, Android 11.
- This function returns
(size_t) -1 instead of (size_t) -2
when the input is empty:
AIX 7.2.
- This function does not put the state into non-initial state when parsing an
incomplete multibyte character on some platforms:
AIX 7.2.
- This function stores a wide character when parsing an incomplete multibyte
character on some platforms:
mingw with UCRT, MSVC 14.
- This function returns the total number of bytes that make up the multibyte
character, not the number of bytes that were needed to complete the multibyte
character, on some platforms:
HP-UX 11.11, Solaris 11 2010-11, mingw, MSVC 14.
- This function returns
(size_t) -2 instead of (size_t) -1
for some invalid byte sequences on some platforms:
NetBSD 10.
- This function may not return 0 when parsing the NUL character on some platforms:
Solaris 9.
Portability problems not fixed by Gnulib:
- In UTF-8 locales, this function may return wide characters up to 0x7FFFFFFF
(that is, beyond 0x0010FFFF) on some platforms:
glibc 2.34.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the ISO C11 function mbrtoc32, provided by Gnulib module
mbrtoc32, operates on 32-bit wide characters and therefore does not have
this limitation.
- This function does not work with a copied
mbstate_t on some platforms:
Haiku.
Next: mbsrtowcs, Previous: mbsinit, Up: Functions in <wchar.h> [Contents][Index]
10.71.14 mbsnrtowcs ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbsnrtowcs.html
Gnulib module: mbsnrtowcs
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 11.3, Cygwin 1.5.x, mingw, MSVC 14, Android 4.4.
- This function produces invalid wide characters on some platforms:
Solaris 11.4.
- In the C or POSIX locales, this function can return
(size_t) -1
and set errno to EILSEQ:
glibc 2.35.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the Gnulib function mbsnrtoc32s, provided by Gnulib module
mbsnrtoc32s, operates on 32-bit wide characters and therefore does not
have this limitation.
- The specification is not clear about whether this function should update the
conversion state when the first argument (the destination pointer) is NULL.
The glibc, Mac OS X, FreeBSD implementations do update the state in this case.
For portability, when passing a NULL destination argument, it is best to pass
a pointer to a temporary copy of the conversion state.
Next: open_wmemstream, Previous: mbsnrtowcs, Up: Functions in <wchar.h> [Contents][Index]
10.71.15 mbsrtowcs ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/mbsrtowcs.html
Gnulib module: mbsrtowcs
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- This function does not work on some platforms:
HP-UX 11, Solaris 11 2010-11.
- In the C or POSIX locales, this function can return
(size_t) -1
and set errno to EILSEQ:
glibc 2.35.
- This function does not work when the first argument is NULL on some platforms:
mingw.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the Gnulib function mbsrtoc32s, provided by Gnulib module
mbsrtoc32s, operates on 32-bit wide characters and therefore does not
have this limitation.
- The specification is not clear about whether this function should update the
conversion state when the first argument (the destination pointer) is NULL.
The glibc implementation does not update the state in this case; the macOS
and FreeBSD implementations do.
For portability, when passing a NULL destination argument, it is best to pass
a pointer to a temporary copy of the conversion state.
Next: putwc, Previous: mbsrtowcs, Up: Functions in <wchar.h> [Contents][Index]
10.71.16 open_wmemstream ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/open_wmemstream.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
glibc 2.3.6, 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.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: swprintf, Previous: putwc, Up: Functions in <wchar.h> [Contents][Index]
10.71.18 putwchar ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/putwchar.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: swscanf, Previous: putwchar, Up: Functions in <wchar.h> [Contents][Index]
10.71.19 swprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/swprintf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x, mingw with UCRT.
- This function has a different signature on some platforms:
MSVC 9.
- This function is only defined as a macro on some platforms:
MSVC 14.
- This function does not support the ‘n’ directive on some platforms:
glibc when used with
_FORTIFY_SOURCE >= 2 (set by default on Ubuntu),
macOS 14, OpenBSD, MSVC 14, Android.
- This function sometimes returns a wrong value through the ‘n’ directive
on some platforms:
musl libc 1.2.3.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- On Windows, this function does not take a buffer size as second argument.
- This function produces wrong values for the ‘La’ directive
on some platforms:
glibc 2.15,
Haiku,
NetBSD 10.0.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- This function ignores the minimum field width in the ‘lc’ directive
on some platforms:
musl libc 1.2.3.
- This function is broken when it produces output that contains null wide
characters on some platforms:
musl libc 1.2.3,
macOS 14, FreeBSD 13.1, NetBSD 10.0, OpenBSD 7.2, AIX 7.2, mingw.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14,
Haiku.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- In the C or POSIX locales, the
%c and %s conversions may fail
on some platforms:
glibc 2.35, musl libc 1.2.4, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2, Cygwin 2.9.0.
- The
%lc directive may fail on some platforms:
musl libc 1.2.4, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
Next: ungetwc, Previous: swprintf, Up: Functions in <wchar.h> [Contents][Index]
10.71.20 swscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/swscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-swscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: vfwscanf, Previous: ungetwc, Up: Functions in <wchar.h> [Contents][Index]
10.71.22 vfwprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vfwprintf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14,
Haiku.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- In the C or POSIX locales, the
%c and %s conversions may fail
on some platforms:
glibc 2.35.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: vswprintf, Previous: vfwprintf, Up: Functions in <wchar.h> [Contents][Index]
10.71.23 vfwscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vfwscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vfwscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, Cygwin 1.5.x, Android 4.4.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: vswscanf, Previous: vfwscanf, Up: Functions in <wchar.h> [Contents][Index]
10.71.24 vswprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vswprintf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- On Windows, this function does not take a buffer size as second argument.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14,
Haiku.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- In the C or POSIX locales, the
%c and %s conversions may fail
on some platforms:
glibc 2.35.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
Next: vwprintf, Previous: vswprintf, Up: Functions in <wchar.h> [Contents][Index]
10.71.25 vswscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vswscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vswscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, Cygwin 1.5.x, MSVC 14, Android 4.4.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: vwscanf, Previous: vswscanf, Up: Functions in <wchar.h> [Contents][Index]
10.71.26 vwprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vwprintf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.7.
- This function exists, but does not support wide arguments on some
platforms: Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14,
Haiku.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- In the C or POSIX locales, the
%c and %s conversions may fail
on some platforms:
glibc 2.35.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Next: wcpcpy, Previous: vwprintf, Up: Functions in <wchar.h> [Contents][Index]
10.71.27 vwscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/vwscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-vwscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, Cygwin 1.5.x, Android 4.4.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcpncpy, Previous: vwscanf, Up: Functions in <wchar.h> [Contents][Index]
10.71.28 wcpcpy ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcpcpy.html
Gnulib module: wcpcpy
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14.
- This function is not declared (without
-D_GNU_SOURCE) on some platforms:
glibc 2.13.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcrtomb, Previous: wcpcpy, Up: Functions in <wchar.h> [Contents][Index]
10.71.29 wcpncpy ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcpncpy.html
Gnulib module: wcpncpy
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 10.0, OpenBSD 7.9, Minix 3.1.8, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14.
- This function is not declared (without
-D_GNU_SOURCE) on some platforms:
glibc 2.13.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcscasecmp, Previous: wcpncpy, Up: Functions in <wchar.h> [Contents][Index]
10.71.30 wcrtomb ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcrtomb.html
Gnulib module: wcrtomb
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- This function produces wrong characters in the C locale on some platforms:
Android 4.3.
- This function returns 0 when the first argument is NULL in some locales on some platforms:
Solaris 11.3.
- This function does not ignore the second argument when the first argument is NULL on some platforms:
mingw with UCRT, MSVC 14.
- This function fails to handle wide characters produced by
mbrtowc on some platforms:
Haiku.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the ISO C11 function c32rtomb, provided by Gnulib module
c32rtomb, operates on 32-bit wide characters and therefore does not have
this limitation.
Next: wcscasecmp_l, Previous: wcrtomb, Up: Functions in <wchar.h> [Contents][Index]
10.71.31 wcscasecmp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscasecmp.html
Gnulib module: wcscasecmp
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcscat, Previous: wcscasecmp, Up: Functions in <wchar.h> [Contents][Index]
10.71.32 wcscasecmp_l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscasecmp_l.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-glibc platforms:
Mac OS X 10.5, FreeBSD 14.0, NetBSD 5.0, OpenBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.x, mingw, MSVC 14, Android 5.1.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcscoll, Previous: wcschr, Up: Functions in <wchar.h> [Contents][Index]
10.71.35 wcscmp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscmp.html
Gnulib module: wcscmp
Portability problems fixed by Gnulib:
- This function compares the wide characters as if they were unsigned, although
wchar_t is signed, on some platforms:
glibc 2.14.1 on x86 or x86_64, musl libc 1.2.3, macOS 14,
FreeBSD 13.2,
NetBSD 10.0, OpenBSD 7.2, Solaris 11.4.
- This function may return a wrong result if the two arguments are of different
length, on some platforms:
glibc 2.37 on arm and arm64 CPUs,
AIX 7.2 in 64-bit mode.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcscpy, Previous: wcscoll, Up: Functions in <wchar.h> [Contents][Index]
10.71.37 wcscoll_l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcscoll_l.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.x, mingw, MSVC 14, Android 4.4.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcslcat, Previous: wcsdup, Up: Functions in <wchar.h> [Contents][Index]
10.71.41 wcsftime ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsftime.html
Gnulib module: wcsftime
Portability problems fixed by Gnulib:
- On native Windows platforms (mingw, MSVC), this function works incorrectly
when the environment variable
TZ has been set by Cygwin.
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
OpenBSD 3.8, Minix 3.1.8, Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- Native Windows platforms (mingw, MSVC) support only a subset of time
zones specified by POSIX. See
tzset.
Next: wcsncasecmp_l, Previous: wcslen, Up: Functions in <wchar.h> [Contents][Index]
10.71.45 wcsncasecmp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncasecmp.html
Gnulib module: wcsncasecmp
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcsncat, Previous: wcsncasecmp, Up: Functions in <wchar.h> [Contents][Index]
10.71.46 wcsncasecmp_l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncasecmp_l.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many non-glibc platforms:
Mac OS X 10.5, FreeBSD 14.0, NetBSD 5.0, OpenBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.x, mingw, MSVC 14, Android 5.1.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcsncpy, Previous: wcsncat, Up: Functions in <wchar.h> [Contents][Index]
10.71.48 wcsncmp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncmp.html
Gnulib module: wcsncmp
Portability problems fixed by Gnulib:
- This function compares the wide characters as if they were unsigned, although
wchar_t is signed, on some platforms:
glibc 2.14.1 on x86 or x86_64, musl libc 1.2.3, macOS 14,
FreeBSD 13.2,
NetBSD 10.0, OpenBSD 7.2, Solaris 11.4.
- This function may return a wrong result if the two arguments are of different
length, on some platforms:
AIX 7.2 in 64-bit mode.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcsnlen, Previous: wcsncmp, Up: Functions in <wchar.h> [Contents][Index]
10.71.49 wcsncpy ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsncpy.html
Gnulib module: wcsncpy
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore
cannot accommodate all Unicode characters.
Note: This function has no real use: It cannot be used for filling a fixed-size
record with a wide string, before writing it to a file, because the wide string
encoding is platform dependent and, on some platforms, also locale dependent.
And this function is not appropriate for copying a wide string into a
bounded memory area, because you have no guarantee that the result will be
null-terminated. Even if you add the null character at the end yourself, this
function is inefficient (as it spends time clearing unused memory) and will
allow silent truncation to occur, which is not a good behavior for GNU programs.
Next: wcsnrtombs, Previous: wcsncpy, Up: Functions in <wchar.h> [Contents][Index]
10.71.50 wcsnlen ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsnlen.html
Gnulib module: wcsnlen
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Mac OS X 10.5, FreeBSD 6.0, NetBSD 7.1, OpenBSD 7.5, Minix 3.1.8, HP-UX 11, Solaris 10, Cygwin 1.5.x, mingw.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcspbrk, Previous: wcsnlen, Up: Functions in <wchar.h> [Contents][Index]
10.71.51 wcsnrtombs ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsnrtombs.html
Gnulib module: wcsnrtombs
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 11.3, Cygwin 1.5.x, mingw, MSVC 14, Android 4.4.
- This function cannot consume valid sequences of wide characters
on some platforms:
Solaris 11.4.
- In C++ mode, the system’s
<wchar.h> defines std::wcsnrtombs but
not ::wcsnrtombs on some platforms:
Solaris 11 OpenIndiana.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the Gnulib function c32snrtombs, provided by Gnulib module
c32snrtombs, operates on 32-bit wide characters and therefore does not
have this limitation.
Next: wcsspn, Previous: wcsrchr, Up: Functions in <wchar.h> [Contents][Index]
10.71.54 wcsrtombs ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsrtombs.html
Gnulib module: wcsrtombs
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- This function does not ignore the length argument if the destination argument is NULL on some platforms:
mingw.
- This function updates the source pointer also if the destination argument is NULL on some platforms:
HP-UX 11.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the Gnulib function c32srtombs, provided by Gnulib module
c32srtombs, operates on 32-bit wide characters and therefore does not
have this limitation.
Next: wcstod, Previous: wcsspn, Up: Functions in <wchar.h> [Contents][Index]
10.71.56 wcsstr ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsstr.html
Gnulib module: wcsstr or wcsstr-simple
Portability problems fixed by either Gnulib module wcsstr-simple or wcsstr:
- This function is missing on some platforms:
HP-UX 11.00.
Portability problems fixed by Gnulib module wcsstr:
- This function has quadratic instead of linear worst-case complexity on some
platforms:
glibc 2.39, macOS 14, FreeBSD 13.1, NetBSD 10.0, OpenBSD 7.2, AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcstok, Previous: wcstod, Up: Functions in <wchar.h> [Contents][Index]
10.71.58 wcstof ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcstof.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.5.x, MSVC 9, Android 4.4.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcstol, Previous: wcstof, Up: Functions in <wchar.h> [Contents][Index]
10.71.59 wcstok ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcstok.html
Gnulib module: wcstok
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Cygwin 1.5.x.
- This function takes only two arguments on some platforms:
mingw, older MSVC.
- This function may use hidden state, ignoring the third argument, and thus
exhibit a bug when two or more
wcstok iteration loops are being performed
in the same thread, on some platforms:
HP-UX 11.31.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcstoll, Previous: wcstol, Up: Functions in <wchar.h> [Contents][Index]
10.71.61 wcstold ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcstold.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, Cygwin 1.7.x, MSVC 9, Android 4.4.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcsxfrm, Previous: wcstoull, Up: Functions in <wchar.h> [Contents][Index]
10.71.65 wcswidth ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcswidth.html
Gnulib module: wcswidth
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 14.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
However, the Gnulib function c32swidth, provided by Gnulib module
c32swidth, operates on 32-bit wide characters and therefore does not
have this limitation.
Next: wctob, Previous: wcsxfrm, Up: Functions in <wchar.h> [Contents][Index]
10.71.67 wcsxfrm_l ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcsxfrm_l.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on many platforms:
FreeBSD 6.0, NetBSD 5.0, OpenBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11.3, Cygwin 1.7.x, mingw, MSVC 14, Android 4.4.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wcwidth, Previous: wcsxfrm_l, Up: Functions in <wchar.h> [Contents][Index]
10.71.68 wctob ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wctob.html
Gnulib module: wctob
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, HP-UX 11.00, mingw.
- This function clobbers caller-owned registers on some platforms:
Cygwin 1.7.5.
- This function does not work on some platforms:
Solaris 9.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and
therefore cannot accommodate all Unicode characters.
However, the Gnulib function c32tob, provided by Gnulib module
c32tob, operates on 32-bit wide characters and therefore does not have
this limitation.
Next: wmemchr, Previous: wctob, Up: Functions in <wchar.h> [Contents][Index]
10.71.69 wcwidth ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wcwidth.html
Gnulib module: wcwidth
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
Minix 3.1.8, mingw, MSVC 14.
- This function is not declared (without
-D_GNU_SOURCE) on some platforms:
glibc 2.8.
- This function handles combining characters in UTF-8 locales incorrectly on some
platforms:
macOS 14, NetBSD 9.3, OpenBSD 5.8, MidnightBSD 1.1.
- This function returns 2 for characters with ambiguous east asian width, even in
Western locales, on some platforms:
Solaris 11.4.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
However, the Gnulib function c32width, provided by Gnulib module
c32width, operates on 32-bit wide characters and therefore does not
have this limitation.
- This function treats zero-width spaces like control characters on some
platforms:
AIX 7.2.
Next: wmemcpy, Previous: wmemchr, Up: Functions in <wchar.h> [Contents][Index]
10.71.71 wmemcmp ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wmemcmp.html
Gnulib module: wmemcmp
Portability problems fixed by Gnulib:
- This function is missing on some platforms:
HP-UX 11.00, MSVC 14.
- This function compares the wide characters as if they were unsigned, although
wchar_t is signed, on some platforms:
glibc 2.14.1 on x86 or x86_64, musl libc 1.2.3, NetBSD 10.0, OpenBSD 7.2, Solaris 11.4.
Portability problems not fixed by Gnulib:
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
Next: wscanf, Previous: wmemset, Up: Functions in <wchar.h> [Contents][Index]
10.71.75 wprintf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wprintf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00.
- This function exists, but does not support wide arguments on some
platforms: Cygwin 1.5.x.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.37, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- This function doesn’t support the
' flag at all on some platforms:
mingw without __USE_MINGW_ANSI_STDIO, MSVC 14,
Haiku.
- This function doesn’t support the
' flag correctly for integers
(it uses the decimal point instead of the thousands separator!)
on some platforms:
mingw with __USE_MINGW_ANSI_STDIO.
- This function doesn’t support the
' flag together with a precision
on an integer argument correctly on some platforms:
glibc 2.36, FreeBSD 14.0, NetBSD 10.0, Solaris 11, Cygwin 3.6.0, Haiku.
- This function doesn’t support the
' flag correctly in locales where
the thousands separator is a multibyte character on some platforms:
NetBSD 10.0, Solaris 11 OpenIndiana.
- This function does not support the ‘b’ directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9,
AIX 7.3, HP-UX 11, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 14, Android 9.0.
- This function does not support the ‘B’ directive on some platforms:
glibc 2.34, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.9, AIX 7.3, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC, Android 9.0.
- printf
"%#.0x" or "%#.0X" with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
- The
%m directive is not portable, use %s mapped to an
argument of strerror(errno) (or a version of strerror_r)
instead.
- In the C or POSIX locales, the
%c and %s conversions may fail
on some platforms:
glibc 2.35.
- When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
- On some platforms, this function does not set
errno or the
stream error indicator on attempts to write to a read-only stream:
Cygwin 1.7.9.
Previous: wprintf, Up: Functions in <wchar.h> [Contents][Index]
10.71.76 wscanf ¶
POSIX specification:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/wscanf.html
LSB specification:
https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/baselib-wscanf.html
Gnulib module: —
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
- This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, Cygwin 1.5.x.
- This function does not support size specifiers as in C23 (
w8,
w16, w32, w64, wf8, wf16, wf32,
wf64) on some platforms:
glibc 2.38, musl libc, macOS 14, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
- On Windows and 32-bit AIX platforms,
wchar_t is a 16-bit type and therefore cannot
accommodate all Unicode characters.