@node strerror
@subsection @code{strerror}
@findex strerror

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strerror.html}

Gnulib module: strerror
@mindex strerror

Portability problems fixed by Gnulib:
@itemize
@item
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, NonStop Kernel, Cygwin 1.5.x, mingw, MSVC 14.
@item
This function reports failure for @code{strerror(0)} (by setting
@code{errno} or using a string similar to out-of-range values),
although POSIX requires this to leave @code{errno} unchanged and
report success, on some platforms:
FreeBSD 8.2, NetBSD 10.0, OpenBSD 4.7, macOS 14.
@item
This function returns an empty string for out-of-range integers on
some platforms:
HP-UX 11.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@end itemize

Note: The return type of the @code{strerror} function
is @code{char *} in POSIX, with the constraint that
``The application shall not modify the string returned.''
The Gnulib-overridden @code{strerror} function
has a return type of @code{const char *}.
This helps detecting code that attempts to write into that string.
