zoukankan      html  css  js  c++  java
  • 《Unix网络编程》中的错误处理函数

    #include "net.h"
    
    #include <syslog.h>   // syslog()   
    
    int daemon_proc;
    
    static void err_doit(int errnoflag, int level, const char *fmt, va_list ap)
    {
        int errno_save, n;
        char buf[MAXLINE + 1];
        errno_save = errno;
    
    #ifdef HAVE_VSNPRINTF
        vsnprintf(nuf, MAXLINE, fmt, ap);
    #else
        vsprintf(buf, fmt, ap);
    #endif
    
        n = strlen(buf);
    
        if (errnoflag)
            snprintf(buf + n, MAXLINE - n, ": %s", strerror(errno_save));
        
        strcat(buf, "
    ");
    
        if (daemon_proc)
        {
            syslog(level, buf);
        }
        else
        {
            fflush(stdout);
              fputs(buf, stderr);
              fflush(stderr);
        }
    
        return;
    }
    
    void err_ret(const char *fmt, ...)
    {
        va_list ap;
        va_start(ap, fmt);
        err_doit(1, LOG_INFO, fmt, ap);
        va_end(ap);
        return;
    }
    
    void err_sys(const char *fmt, ...)
    {
        va_list ap;
        va_start(ap, fmt);
        err_doit(1, LOG_INFO, fmt, ap);
        va_end(ap);
        exit(1);
    }
    
    void err_dump(const char *fmt, ...)
    {
        va_list ap;
        va_start(ap, fmt);
        err_doit(1, LOG_ERR, fmt, ap);
        va_end(ap);
        abort();
        exit(1);
    }
    
    void err_msg(const char *fmt, ...)
    {
        va_list ap;
        va_start(ap, fmt);
        err_doit(1, LOG_INFO, fmt, ap);
        va_end(ap);
        return;
    }
    
    void err_quit(const char *fmt, ...)
    {
        va_list ap;
        va_start(ap, fmt);
        err_doit(1, LOG_INFO, fmt, ap);
        va_end(ap);
        exit(1);
    }
  • 相关阅读:
    object-c中NSString与int和float的相互转换
    Keras
    TensorFlow白皮书
    java split进行字符串分割
    Java进行post和get传参数
    MySQL 导出数据
    解析xml并且导入mysql
    MySQL显示中文
    java使用sax解析xml
    mysql connection refused
  • 原文地址:https://www.cnblogs.com/lnlin/p/9367147.html
Copyright © 2011-2022 走看看