1#include "libc.h" 2#include <errno.h> 3#include <string.h> 4 5int strerror_r(int err, char* buf, size_t buflen) { 6 char* msg = strerror(err); 7 size_t l = strlen(msg); 8 if (l >= buflen) { 9 if (buflen) { 10 memcpy(buf, msg, buflen - 1); 11 buf[buflen - 1] = 0; 12 } 13 return ERANGE; 14 } 15 memcpy(buf, msg, l + 1); 16 return 0; 17} 18 19weak_alias(strerror_r, __xpg_strerror_r); 20