From c924151b02efef817e03a1622f08ac3061a529a1 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Thu, 29 Nov 2018 13:33:28 -0600 Subject: docs: mention printf %m considerations gcc -Wformat does NOT flag printf("%m") on a BSD system, even though it prints only "m" instead of the desired GNU/Linux behavior of the current errno value (you have to use -Wpedantic to flag it, but that's a rather heavy hammer). Still, it's easy enough (even if verbose) to write out strerror() usage directly, to the point that gnulib will probably never provide a module to guarantee %m everywhere. See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88270 * doc/glibc-functions/asprintf.texi (asprintf): Document that %m is not portable, and is easy enough to work around. * doc/glibc-functions/obstack_printf.texi (obstack_printf): Likewise. * doc/glibc-functions/obstack_vprintf.texi (obstack_vprintf): Likewise. * doc/glibc-functions/vasprintf.texi (vasprintf): Likewise. * doc/posix-functions/dprintf.texi (dprintf): Likewise. * doc/posix-functions/fprintf.texi (fprintf): Likewise. * doc/posix-functions/fwprintf.texi (fwprintf): Likewise. * doc/posix-functions/printf.texi (printf): Likewise. * doc/posix-functions/snprintf.texi (snprintf): Likewise. * doc/posix-functions/sprintf.texi (sprintf): Likewise. * doc/posix-functions/swprintf.texi (swprintf): Likewise. * doc/posix-functions/vdprintf.texi (vdprintf): Likewise. * doc/posix-functions/vfprintf.texi (vfprintf): Likewise. * doc/posix-functions/vfwprintf.texi (vfwprintf): Likewise. * doc/posix-functions/vprintf.texi (vprintf): Likewise. * doc/posix-functions/vsnprintf.texi (vsnprintf): Likewise. * doc/posix-functions/vsprintf.texi (vsprintf): Likewise. * doc/posix-functions/vswprintf.texi (vswprintf): Likewise. * doc/posix-functions/vwprintf.texi (vwprintf): Likewise. * doc/posix-functions/wprintf.texi (wprintf): Likewise. Signed-off-by: Eric Blake --- doc/posix-functions/snprintf.texi | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc/posix-functions/snprintf.texi') diff --git a/doc/posix-functions/snprintf.texi b/doc/posix-functions/snprintf.texi index 795e443937..d43f1ddb89 100644 --- a/doc/posix-functions/snprintf.texi +++ b/doc/posix-functions/snprintf.texi @@ -99,6 +99,10 @@ OSF/1 5.1. 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. -- cgit v1.2.1