Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15073
  • 博文数量: 17
  • 博客积分: 660
  • 博客等级: 上士
  • 技术积分: 180
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-18 17:32
文章分类

全部博文(17)

文章存档

2011年(1)

2010年(15)

2009年(1)

我的朋友
最近访客

分类: C/C++

2010-08-17 15:08:22

 

错误处理:


void xxx_printf(const char *format,...)
{
    char buf[MAX_STD_BUF+1];
    va_list ap;

    va_start(ap, format);

    vsnprintf(buf, MAX_STD_BUF, format, ap);
    buf[MAX_STD_BUF] = '\0';

    if(res_daemon)
    {
        syslog(LOG_CONS | LOG_DAEMON | LOG_ERR, " %s", buf);
    }
    else if(res_debug)
    {
        //fprintf(stderr, "%s", buf);

        printf("%s",buf);
#if defined(WIN32) && defined(ENABLE_WIN32_SERVICE)
        CreateApplicationEventLogEntry(buf);
#endif
    }
    else
            ;

    return;
}

void xxx_fatal_error(const char *format,...)
{
    char buf[MAX_STD_BUF+1];
    va_list ap;

    va_start(ap, format);

    vsnprintf(buf, MAX_STD_BUF, format, ap);
    buf[MAX_STD_BUF] = '\0';

    if(res_daemon)
    {
        syslog(LOG_CONS | LOG_DAEMON | LOG_ERR, "FATAL ERROR: %s", buf);
    }
    else if(res_debug)
    {
        fprintf(stderr, "ERROR: %s", buf);
        fprintf(stderr,"Fatal Error, Quitting..\n");
#if defined(WIN32) && defined(ENABLE_WIN32_SERVICE)
        CreateApplicationEventLogEntry(buf);
#endif
    }
    else
            ;

    exit(1);
}


int xxx_snprintf(char *buf, size_t buf_size, const char *format, ...)
{
    va_list ap;
    int ret;

    if (buf == NULL || buf_size <= 0 || format == NULL)
        return -1;

    /* zero first byte in case an error occurs with
     * vsnprintf, so buffer is null terminated with
     * zero length */

    buf[0] = '\0';
    buf[buf_size - 1] = '\0';

    va_start(ap, format);

    ret = vsnprintf(buf, buf_size, format, ap);

    va_end(ap);

    if (ret < 0)
        return -1;

    if (buf[buf_size - 1] != '\0' || ret >= buf_size)
    {
        /* result was truncated */
        buf[buf_size - 1] = '\0';
        return 1;
    }

    return 0;
}


《TCP/IP网络互连》中的为:

 

阅读(298) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~