mirror of
https://git.savannah.gnu.org/git/gnulib.git
synced 2025-08-17 12:41:05 +03:00
http://austingroupbugs.net/view.php?id=382 requires that strerror(0) succeed, but FreeBSD reports "Unknown error: 0" and fails with EINVAL. * m4/strerror.m4 (gl_FUNC_STRERROR_SEPARATE): Expose BSD bug. * m4/strerror_r.m4 (gl_FUNC_STRERROR_R): Likewise. * lib/strerror_r.c (rpl_strerror_r): Work around it. * doc/posix-functions/strerror.texi (strerror): Document it. * doc/posix-functions/strerror_r.texi (strerror_r): Likewise. * tests/test-strerror.c (main): Strengthen test. * tests/test-strerror_r.c (main): Likewise. Signed-off-by: Eric Blake <eblake@redhat.com>
33 lines
1.0 KiB
Plaintext
33 lines
1.0 KiB
Plaintext
@node strerror
|
|
@section @code{strerror}
|
|
@findex strerror
|
|
|
|
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/strerror.html}
|
|
|
|
Gnulib module: 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, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x, mingw.
|
|
@item
|
|
This function reports failure (by setting @code{errno}) for
|
|
@code{strerror(0)}, although POSIX requires this to leave @code{errno}
|
|
unchanged and report success, on some platforms:
|
|
FreeBSD 8.2
|
|
@item
|
|
This function fails to return a string for out-of-range integers on
|
|
some platforms:
|
|
HP-UX 11, IRIX 6.5, Solaris 8.
|
|
(Some return NULL which is a POSIX violation, others return the empty
|
|
string which is valid but not as useful); this can still cause bugs
|
|
because most programs call @code{strerror} without setting and testing
|
|
@code{errno}.)
|
|
@end itemize
|
|
|
|
Portability problems not fixed by Gnulib:
|
|
@itemize
|
|
@end itemize
|