X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Ferrno.c;h=b5fe95874ed1c285c78c0532781e65ff4da932b4;hb=42b3957c0386ec9e466dc98b1318bf389cc2a4dc;hp=f1c3c4d1bddf3754907c48abca3844cbdc6f6471;hpb=fa6e0731826c508a8a5d963b05b475e6e20d37a4;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/errno.c b/Usermode/Libraries/libc.so_src/errno.c index f1c3c4d1..b5fe9587 100644 --- a/Usermode/Libraries/libc.so_src/errno.c +++ b/Usermode/Libraries/libc.so_src/errno.c @@ -8,13 +8,14 @@ #include "lib.h" #include #include +#include EXPORT int *libc_geterrno() { return &_errno; } -EXPORT const char *strerror(int errnum) +EXPORT char *strerror(int errnum) { switch(errnum) { @@ -27,7 +28,18 @@ EXPORT const char *strerror(int errnum) case EPERM: return "Permissions error"; default: _SysDebug("strerror: errnum=%i unk", errnum); + errno = EINVAL; return "unknown error"; } } +EXPORT int strerror_r(int errnum, char *buf, size_t bufsiz) +{ + const char *str = strerror(errnum); + if(!str) + return -1; + + strncpy(buf, str, bufsiz); + return 0; +} +