Hash :
9ef347ea
Author :
Date :
2024-04-05T12:04:59
Update for NetBSD 9.3 and 10.0. * doc/*/*.texi: Update for NetBSD 9.3 and 10.0. * m4/expm1l.m4 (gl_FUNC_EXPM1L): Update comments and cross-compilation guess. * m4/log1pl.m4 (gl_FUNC_LOG1PL_WORKS): Likewise. * m4/log2l.m4 (gl_FUNC_LOG2L_WORKS): Likewise. * m4/printf.m4 (gl_SWPRINTF_DIRECTIVE_LA): Likewise. * m4/remainderl.m4 (gl_FUNC_REMAINDERL_WORKS): Likewise. * m4/fcntl.m4: Update comments. * m4/fenv-environment.m4: Likewise. * m4/fenv-exceptions-trapping.m4: Likewise. * m4/fnmatch.m4: Likewise. * m4/getcwd-abort-bug.m4: Likewise. * m4/iswdigit.m4: Likewise. * m4/iswxdigit.m4: Likewise. * m4/modfl.m4: Likewise. * m4/wcscmp.m4: Likewise. * m4/wcsncmp.m4: Likewise. * m4/wctrans.m4: Likewise. * m4/wcwidth.m4: Likewise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
@node printf
@section @code{printf}
@findex printf
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/printf.html}
Gnulib module: printf-posix or printf-gnu or stdio, nonblocking, sigpipe
Portability problems fixed by either Gnulib module @code{printf-posix} or @code{printf-gnu}:
@itemize
@item
This function does not support size specifiers as in C99 (@code{hh}, @code{ll},
@code{j}, @code{t}, @code{z}) on some platforms:
AIX 5.1, HP-UX 11.23, IRIX 6.5, Solaris 9, Cygwin 1.5.24, old mingw, MSVC 9.
@item
This function does not support size specifiers as in C23 (@code{w8},
@code{w16}, @code{w32}, @code{w64}, @code{wf8}, @code{wf16}, @code{wf32},
@code{wf64}) on some platforms:
glibc, musl libc, macOS 12.5, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, IRIX 6.5, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
@item
printf of @samp{long double} numbers is unsupported on some platforms:
mingw, MSVC 14.
@item
printf @code{"%f"}, @code{"%e"}, @code{"%g"} of Infinity and NaN yields an
incorrect result on some platforms:
AIX 5.2, Solaris 11.4, mingw, MSVC 14.
@item
This function does not support the @samp{a} and @samp{A} directives on some
platforms:
glibc-2.3.6, Mac OS X 10.5, NetBSD 10.0, OpenBSD 4.0, AIX 5.2, HP-UX 11,
IRIX 6.5, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC 14.
@item
This function does not support the @samp{b} directive, required by ISO C23,
on some platforms:
glibc 2.34, musl libc, macOS 12.5, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2,
AIX 7.2, HP-UX 11, IRIX 6.5, Solaris 11.4, Cygwin 2.9.0, mingw, MSVC 14.
@item
This function does not support the @samp{F} directive on some platforms:
NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, Solaris 9,
Cygwin 1.5.x, mingw, MSVC 14.
@item
This function does not support the @samp{ls} directive on some platforms:
OpenBSD 4.0, IRIX 6.5, Cygwin 1.5.x, Haiku.
@item
This function does not support precisions in the @samp{ls} directive correctly
on some platforms:
Solaris 11.4.
@item
This function does not support format directives that access arguments in an
arbitrary order, such as @code{"%2$s"}, on some platforms:
NetBSD 3.0, mingw, MSVC 14.
@item
This function doesn't support the @code{'} flag on some platforms:
NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 14.
@item
This function does not round the argument of the @samp{a} directive correctly
on some platforms:
Mac OS X 10.12, FreeBSD 14.0.
@item
printf @code{"%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 5.2, IRIX 6.5, Solaris 11.4, Cygwin 1.5.x, mingw, MSVC/clang.
@item
printf @code{"%#.0x"} or @code{"%#.0X"} with a zero argument yields an
incorrect result (non-empty) on some platforms:
Mac OS X 10.6.
@item
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.
@item
This function mishandles large floating point precisions
(for example, formatting 1.0 with @samp{"%.511f"})
on some platforms:
Solaris 10.
@item
This function produces wrong output for the @samp{lc} directive with a NUL
wide character argument on some platforms:
musl libc 1.2.4.
@item
This function can crash in out-of-memory conditions on some platforms:
FreeBSD 14.0, NetBSD 5.0.
@end itemize
Portability problems fixed by Gnulib module @code{printf-gnu}:
@itemize
@item
This function does not support the @samp{B} directive on some platforms:
glibc 2.34, FreeBSD 13.2, NetBSD 10.0, OpenBSD 7.2, macOS 12.5, AIX 7.2, Solaris 11.4, and others.
@end itemize
Portability problems fixed by either Gnulib module @code{printf-posix} or @code{printf-gnu}
and additionally the Gnulib module @code{printf-with-n-directive}:
@itemize
@item
This function does not support the @samp{n} directive on some platforms:
glibc when used with @code{_FORTIFY_SOURCE >= 2} (set by default on Ubuntu),
Android, OpenBSD, macOS 11.1, MSVC 14.
@end itemize
Portability problems fixed by Gnulib module @code{stdio} or @code{printf-posix} or @code{printf-gnu}, together with module @code{nonblocking}:
@itemize
@item
When writing to a non-blocking pipe whose buffer is full, this function fails
with @code{errno} being set to @code{ENOSPC} instead of @code{EAGAIN} on some
platforms:
mingw, MSVC 14.
@end itemize
Portability problems fixed by Gnulib module @code{stdio} or @code{printf-posix} or @code{printf-gnu}, together with module @code{sigpipe}:
@itemize
@item
When writing to a pipe with no readers, this function fails, instead of
obeying the current @code{SIGPIPE} handler, on some platforms:
mingw, MSVC 14.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
The @code{%m} directive is not portable, use @code{%s} mapped to an
argument of @code{strerror(errno)} (or a version of @code{strerror_r})
instead.
@item
Formatting noncanonical @samp{long double} numbers produces
nonmeaningful results on some platforms:
glibc and others, on x86, x86_64, IA-64 CPUs.
@item
When formatting an integer with grouping flag, this function inserts thousands
separators even in the "C" locale on some platforms:
NetBSD 5.1.
@item
Attempting to write to a read-only stream fails with @code{EOF} but
does not set the error flag for @code{ferror} on some platforms:
glibc 2.13, cygwin 1.7.9.
@end itemize