#include <string.h> | |
#include <errno.h> | |
#include "libc.h" | |
int strerror_r(int err, char* buf, size_t buflen) { | |
char* msg = strerror(err); | |
size_t l = strlen(msg); | |
if (l >= buflen) { | |
if (buflen) { | |
memcpy(buf, msg, buflen - 1); | |
buf[buflen - 1] = 0; | |
} | |
return ERANGE; | |
} | |
memcpy(buf, msg, l + 1); | |
return 0; | |
} | |
weak_alias(strerror_r, __xpg_strerror_r); |