关于unix高级环境编程(apue)编译时的err_sys和err_quit错误的解决办法
来源:互联网 发布:雅痞大叔范 淘宝达人 编辑:程序博客网 时间:2024/05/10 02:11
这些天看unix高级环境编程收获颇多。但在编译书中的源文件时总出现错误。err_sys和err_quit not exist。现在终于找到了解决办法。所以把办法写在这里也给看此书的朋友一些帮助。
其实在附录B中W. Richard Stevens, Stephen A. Rago已经实现了这些函数,
把这些实现了的函数写成了头文件,再编译程序时只要包含该头文件就不会出现编译错误的情况了。
apueerror.h http://dl2.csdn.net/down4/20070816/16170243222.h
/--------------------------------------------------------------------------/#include "apue.h"
#include <errno.h> /* for definition of errno */
#include <stdarg.h> /* ISO C variable aruments */
static void err_doit(int, int, const char *, va_list);
/*
* Nonfatal error related to a system call.
* Print a message and return.
*/
void
err_ret(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
err_doit(1, errno, fmt, ap);
va_end(ap);
}
/*
* Fatal error related to a system call.
* Print a message and terminate.
*/
void
err_sys(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
err_doit(1, errno, fmt, ap);
va_end(ap);
exit(1);
}
/*
* Fatal error unrelated to a system call.
* Error code passed as explict parameter.
* Print a message and terminate.
*/
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);
}
/*
* Fatal error related to a system call.
* Print a message, dump core, and terminate.
*/
void
err_dump(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
err_doit(1, errno, fmt, ap);
va_end(ap);
abort(); /* dump core and terminate */
exit(1); /* shouldn't get here */
}
/*
* Nonfatal error unrelated to a system call.
* Print a message and return.
*/
void
err_msg(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
err_doit(0, 0, fmt, ap);
va_end(ap);
}
/*
* Fatal error unrelated to a system call.
* Print a message and terminate.
*/
void
err_quit(const char *fmt, ...)
{
va_list ap;
va_start(ap, fmt);
err_doit(0, 0, fmt, ap);
va_end(ap);
exit(1);
}
/*
* Print a message and return to caller.
* Caller specifies "errnoflag".
*/
static void
err_doit(int errnoflag, int error, const char *fmt, va_list ap)
{
char buf[MAXLINE];
vsnprintf(buf, MAXLINE, fmt, ap);
if (errnoflag)
snprintf(buf+strlen(buf), MAXLINE-strlen(buf), ": %s",
strerror(error));
strcat(buf, " ");
fflush(stdout); /* in case stdout and stderr are the same */
fputs(buf, stderr);
fflush(NULL); /* flushes all stdio output streams */
}
- 关于unix高级环境编程(apue)编译时的err_sys和err_quit错误的解决办法
- unix高级环境编程(apue)编译时的err_sys和err_quit错误的解决办法最终版
- unix高级环境编程(apue)编译时的err_sys和err_quit错误的解决办法最终版
- 关于unix高级环境编程 编译时的err_sys和err_quit错误
- 关于unix高级环境编程 编译时的err_sys和err_quit错误
- Unix环境编程中的apue.h和err_quit、err_sys问题
- 《unix环境高级编程》源代码编译找不到apue.h等错误的解决办法
- 《unix环境高级编程》源代码编译找不到apue.h等错误的解决办法
- 《unix环境高级编程》源代码编译找不到apue.h等错误的解决办法
- 《unix环境高级编程》源代码编译找不到apue.h等错误的解决办法
- 【UNIX高级编程】关于UNIX编程环境的配置(apue.h和error.h)
- err_sys (unix环境高级编程)
- Mac下编译"Unix环境高级编程"的apue.h的错误解决
- 《UNIX环境高级编程》apue源代码Ubuntu下的编译
- 《UNIX环境高级编程》apue源代码Ubuntu下的编译
- 《UNIX环境高级编程》apue源代码Ubuntu下的编译
- 关于UNIX高级环境编程中 apue.h的解决方法
- APUE(UNIX环境高级编程)的源代码编译与调试
- java.lang.Class类
- 记生平写的第一个病毒!
- 构架师已死
- 实现上传下载(jspSmartUpload)
- [亏了] base 标签解决showModalDialog 弹出新窗口问题!
- 关于unix高级环境编程(apue)编译时的err_sys和err_quit错误的解决办法
- 在DataGrid中使用DropDownList控件 (转 土人制造)
- 程序员必知必会之blog篇
- 关于ClickOnce无法更新/Upgrade/下载 应用系统最新版本的问题和解决方法
- One Night In ShangHai ---- 某转和某猫在上海的一天
- Oracle常见错误总结
- C++学习笔记(三)
- CascadingDropDown控件
- 家有宝贝(淡月儿)