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);
    }
  • 相关阅读:
    Understanding Optional and Compulsory Parameters
    WebMail
    bool?
    第六章笔记 上
    菜鸟错题集
    vue的基本用法
    luogg_java学习_06_面向对象特性之封装和继承
    luogg_java学习_05_面向对象(方法和类)
    CSS3学习总结
    luogg_java学习_04_数组
  • 原文地址:https://www.cnblogs.com/lnlin/p/9367147.html
Copyright © 2011-2022 走看看