diff --git a/lib/roken/strerror_r.c b/lib/roken/strerror_r.c index 60bf108d0..d3ef7d6be 100644 --- a/lib/roken/strerror_r.c +++ b/lib/roken/strerror_r.c @@ -37,6 +37,22 @@ #include #include +#ifdef _MSC_VER + +char * ROKEN_LIB_FUNCTION +strerror_r(int eno, char * strerrbuf, size_t buflen) +{ + errno_t err; + + err = strerror_s(strerrbuf, buflen, eno); + if (err != 0) + sprintf_s(strerrbuf, buflen, "Error % occurred.", eno); + + return strerrbuf; +} + +#else + extern int sys_nerr; extern char *sys_errlist[]; @@ -53,3 +69,5 @@ strerror_r(int eno, char *strerrbuf, size_t buflen) return ERANGE; return 0; } + +#endif