文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>错误处理

错误处理

时间:2010-08-17  来源:maahier

 

错误处理:


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网络互连》中的为:

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载