aboutsummaryrefslogtreecommitdiff
path: root/manual
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2021-12-23 15:01:07 +0100
committerFlorian Weimer <fweimer@redhat.com>2021-12-23 15:02:50 +0100
commit9702a7901e18460e8ffc5f56a493d41294a8e936 (patch)
tree0e7147c9c7e3d4cb14d3474c9dd947dcf64b38a9 /manual
parentcd0c333d2ea82d0ae14719bdbef86d99615bdb00 (diff)
downloadglibc-9702a7901e18460e8ffc5f56a493d41294a8e936.zip
glibc-9702a7901e18460e8ffc5f56a493d41294a8e936.tar.gz
glibc-9702a7901e18460e8ffc5f56a493d41294a8e936.tar.bz2
stdio: Implement %#m for vfprintf and related functions
%#m prints errno as an error constant if one is available, or a decimal number as a fallback. This intends to address the gap that strerrorname_np does not work well with printf for unknown error codes due to its NULL return values in those cases. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'manual')
-rw-r--r--manual/stdio.texi8
1 files changed, 6 insertions, 2 deletions
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 29d01b9..1fac8e5 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -1949,6 +1949,9 @@ which can be parsed by the @code{strtoul} function (@pxref{Parsing of
Integers}) and @code{scanf} with the @samp{%i} conversion
(@pxref{Numeric Input Conversions}).
+For the @samp{%m} conversion, print an error constant or decimal error
+number, instead of a (possibly translated) error message.
+
@item @samp{'}
Separate the digits into groups as specified by the locale specified for
the @code{LC_NUMERIC} category; @pxref{General Numeric}. This flag is a
@@ -2271,8 +2274,9 @@ is equivalent to:
fprintf (stderr, "can't open `%s': %s\n", filename, strerror (errno));
@end smallexample
-@noindent
-The @samp{%m} conversion is a @glibcadj{} extension.
+The @samp{%m} conversion can be used with the @samp{#} flag to print an
+error constant, as provided by @code{strerrorname_np}. Both @samp{%m}
+and @samp{%#m} are @glibcadj{} extensions.
The @samp{%p} conversion prints a pointer value. The corresponding
argument must be of type @code{void *}. In practice, you can use any