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