1
0
mirror of https://git.savannah.gnu.org/git/gnulib.git synced 2025-08-17 12:41:05 +03:00
Files
gnulib/doc/posix-functions/strerror.texi
Eric Blake 1608fbc010 strerror: enforce POSIX ruling on strerror(0)
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>
2011-05-19 09:33:59 -06:00

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