void isc__strerror (int num, char *buf, size_t size) { char *msg; BOOL freebuf; unsigned int unum = num; static isc_once_t once = ISC_ONCE_INIT; REQUIRE (buf != NULL); RUNTIME_CHECK (isc_once_do (&once, init_lock) == ISC_R_SUCCESS); LOCK (&isc_strerror_lock); freebuf = FALSE; msg = NTstrerror (num, &freebuf); if (msg != NULL) snprintf (buf, size, "%s", msg); else snprintf (buf, size, "Unknown error: %u", unum); if (freebuf && msg != NULL) { LocalFree (msg); } UNLOCK (&isc_strerror_lock); }
/* * This is a replacement for perror */ void __cdecl NTperror(char *errmsg) { /* Copy the error value first in case of other errors */ int errval = errno; BOOL bfreebuf = FALSE; char *msg; msg = NTstrerror(errval, &bfreebuf); fprintf(stderr, "%s: %s\n", errmsg, msg); if(bfreebuf == TRUE) { LocalFree(msg); } }
void isc__strerror(int num, char *buf, size_t size) { char *msg; BOOL freebuf; unsigned int unum = num; freebuf = FALSE; msg = NTstrerror(num, &freebuf); if (msg != NULL) _snprintf(buf, size, "%s", msg); else _snprintf(buf, size, "Unknown error: %u", unum); if(freebuf && msg != NULL) { LocalFree(msg); } }
char * strerror(int errnum) { BOOL bfreebuf; return (NTstrerror(errnum, &bfreebuf)); }