unix环境高级编程一书中部分错误处理函数
2017-08-09 20:35
519 查看
#include <unistd.h> #include <errno.h> #include <string.h> #include <stdio.h> #include <stdarg.h> #include <stdlib.h> #include "my_err.h" static void err_doit(int, int, const char *, va_list); void err_ret(const char *fmt, ...) { va_list ap; va_start(ap, fmt); err_doit(1, errno, fmt, ap); va_end(ap); return; } void err_sys(const char *fmt, ...) { va_list ap; va_start(ap, fmt); err_doit(1, errno, fmt, ap); va_end(ap); exit(1); } void err_dump(const char *fmt, ...) { va_list ap; va_start(ap, fmt); err_doit(1, errno, fmt, ap); va_end(ap); abort(); exit(1); } void err_msg(const char *fmt, ...) { va_list ap; va_start(ap, fmt); err_doit(0, errno, fmt, ap); va_end(ap); return; } void err_quit(const char *fmt, ...) { va_list ap; va_start(ap, fmt); err_doit(0, fmt, ap); va_end(ap); exit(1); } void err_exit(int error, const char *fmt, ...) { va_list ap; va_start(ap, fmt); err_doit(1, error, fmt, ap); va_end(ap); exit(1); } static void err_doit(int errnoflag, int error, const char *fmt, va_list ap) { char buf[MAXLINE]; vsprintf(buf, fmt, ap); if (errnoflag) { sprintf(buf+strlen(buf), ": %s", strerror(error)); } strcat(buf, "\n"); fflush(stdout); fputs(buf, stderr); fflush(NULL); return; }
相关文章推荐
- UNIX环境高级编程----函数索引(部分)
- unix环境高级编程-alarm、pause()与信号处理函数
- Unix环境高级编程(阅读笔记)----信号集、信号屏蔽函数sigprocmask
- Unix高级环境编程,编译时的err_sys和err_quit错误
- UNIX环境高级编程中的apue.h错误
- unix环境高级编程-1.7-出错处理
- 【转载】UNIX环境高级编程中的apue.h错误
- unix 环境高级编程 信号函数杂记一
- UNIX 环境高级编程(九)—— fork 函数与 I/O 函数
- Unix环境高级编程第三版源码编译错误
- Unix高级编程:信号处理函数的注册、信号的产生、阻塞、未决
- unix环境高级编程之一( 基本I/O函数)
- unix环境高级编程(阅读笔记)------signal函数与sigaction的区别
- Unix环境高级编程(七)fork函数总结
- unix环境高级编程-4.11-chown,fchown和lchown函数
- UNIX环境高级编程中的apue.h错误
- unix环境高级编程-4.9-chmod,fchmod函数和粘住位
- UNIX环境高级编程习题3.2 自己实现dup2函数功能
- UNIX环境高级编程第二版中编译程序提示“apue.h:找不到这个文件或目录”错误
- apue<<UNIX环境高级编程>>翻译错误罗列