Implement missing POSIX-1.2008 function strerror_l
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
80e0ad1e77
commit
463a8afaa5
|
@ -7,14 +7,18 @@
|
|||
|
||||
/*
|
||||
FUNCTION
|
||||
<<strerror>>---convert error number to string
|
||||
<<strerror>>, <<strerror_l>>---convert error number to string
|
||||
|
||||
INDEX
|
||||
strerror
|
||||
|
||||
INDEX
|
||||
strerror_l
|
||||
|
||||
ANSI_SYNOPSIS
|
||||
#include <string.h>
|
||||
char *strerror(int <[errnum]>);
|
||||
char *strerror_l(int <[errnum]>, locale_t locale);
|
||||
char *_strerror_r(struct _reent <[ptr]>, int <[errnum]>,
|
||||
int <[internal]>, int *<[error]>);
|
||||
|
||||
|
@ -29,6 +33,10 @@ string. The value of <[errnum]> is usually a copy of <<errno>>.
|
|||
If <<errnum>> is not a known error number, the result points to an
|
||||
empty string.
|
||||
|
||||
<<strftime_l>> is like <<strftime>> but creates a string in a format
|
||||
as expected in locale <[locale]>. If <[locale]> is LC_GLOBAL_LOCALE or
|
||||
not a valid locale object, the behaviour is undefined.
|
||||
|
||||
This implementation of <<strerror>> prints out the following strings
|
||||
for each of the values defined in `<<errno.h>>':
|
||||
|
||||
|
@ -330,6 +338,8 @@ PORTABILITY
|
|||
ANSI C requires <<strerror>>, but does not specify the strings used
|
||||
for each error number.
|
||||
|
||||
<<strerror_l>> is POSIX-1.2008.
|
||||
|
||||
Although this implementation of <<strerror>> is reentrant (depending
|
||||
on <<_user_strerror>>), ANSI C declares that subsequent calls to
|
||||
<<strerror>> may overwrite the result string; therefore portable
|
||||
|
@ -893,3 +903,10 @@ _DEFUN(strerror, (int),
|
|||
{
|
||||
return _strerror_r (_REENT, errnum, 0, NULL);
|
||||
}
|
||||
|
||||
char *
|
||||
strerror_l (int errnum, locale_t locale)
|
||||
{
|
||||
/* We don't support per-locale error messages. */
|
||||
return _strerror_r (_REENT, errnum, 0, NULL);
|
||||
}
|
||||
|
|
|
@ -1345,6 +1345,7 @@ strcpy NOSIGFE
|
|||
strcspn NOSIGFE
|
||||
strdup SIGFE
|
||||
strerror SIGFE
|
||||
strerror_l SIGFE
|
||||
strerror_r SIGFE
|
||||
strfmon SIGFE
|
||||
strfmon_l SIGFE
|
||||
|
|
|
@ -403,6 +403,13 @@ strerror (int errnum)
|
|||
return result;
|
||||
}
|
||||
|
||||
extern "C" char *
|
||||
strerror_l (int errnum, locale_t locale)
|
||||
{
|
||||
/* We don't provide localized system error messages (yet?). */
|
||||
return strerror (errnum);
|
||||
}
|
||||
|
||||
/* Newlib's <string.h> provides declarations for two strerror_r
|
||||
variants, according to preprocessor feature macros. However, it
|
||||
returns "" instead of "Unknown error ...", so we override both
|
||||
|
|
Loading…
Reference in New Issue