示例#1
0
文件: strerror.c 项目: 274914765/C
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);
}
示例#2
0
文件: strerror.c 项目: sambuc/netbsd
/*
 * 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);
	}

}
示例#3
0
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);
	}
}
示例#4
0
char *
strerror(int errnum) {
	BOOL bfreebuf;
	return (NTstrerror(errnum, &bfreebuf));
}