int strerror_r(int errnum, char *strerrbuf, size_t buflen) { int save_errno; int len, ret = 0; const char* msg; save_errno = errno; msg = __code_string_lookup( _sys_error_strings, errnum ); if (msg != NULL) { len = strlcpy(strerrbuf, msg, buflen); if ((size_t)len >= buflen) ret = ERANGE; } else { len = strlcpy(strerrbuf, "Unknown error: ", buflen); if ((size_t)len >= buflen) ret = ERANGE; else { int ret = __itoa(errnum, 1, strerrbuf, len, buflen); if (ret == 0) ret = EINVAL; } } return ret; }
extern "C" __LIBC_HIDDEN__ const char* __strsignal_lookup(int signal_number) { return __code_string_lookup(_sys_signal_strings, signal_number); }
extern "C" __LIBC_HIDDEN__ const char* __strerror_lookup(int error_number) { return __code_string_lookup(_sys_error_strings, error_number); }