1570af302Sopenharmony_ci#include <string.h> 2570af302Sopenharmony_ci#include <errno.h> 3570af302Sopenharmony_ci 4570af302Sopenharmony_ciint strerror_r(int err, char *buf, size_t buflen) 5570af302Sopenharmony_ci{ 6570af302Sopenharmony_ci char *msg = strerror(err); 7570af302Sopenharmony_ci size_t l = strlen(msg); 8570af302Sopenharmony_ci if (l >= buflen) { 9570af302Sopenharmony_ci if (buflen) { 10570af302Sopenharmony_ci memcpy(buf, msg, buflen-1); 11570af302Sopenharmony_ci buf[buflen-1] = 0; 12570af302Sopenharmony_ci } 13570af302Sopenharmony_ci return ERANGE; 14570af302Sopenharmony_ci } 15570af302Sopenharmony_ci memcpy(buf, msg, l+1); 16570af302Sopenharmony_ci return 0; 17570af302Sopenharmony_ci} 18570af302Sopenharmony_ci 19570af302Sopenharmony_ciweak_alias(strerror_r, __xpg_strerror_r); 20