Linux - Unix环境高级编程(第三版) 代码编译
Unix环境高级编程(第三版) 代码编译
本文地址:http://blog.csdn.net/caroline_wendy
时间:2014.10.2
1. 下载代码:http://www.apuebook.com/code3e.html
2. 安装依赖库:sudo apt-get install libbsd-dev
3. 进入下载目录make
4. 复制头文件和动态链接库
sudo cp ./include/apue.h /usr/include/
sudo cp ./lib/libapue.a /usr/local/lib/
sudo cp ./lib/libapue.a /usr/lib/
5. 设置错误文件error.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, "\n");fflush(stdout); /* in case stdout and stderr are the same */fputs(buf, stderr);fflush(NULL); /* flushes all stdio output streams */
}
6. 注销,重启
7. 代码文件
#include "apue.h"
#include "error.h"
Linux - Unix环境高级编程(第三版) 代码编译相关推荐
- unix环境高级编程第三版源代码编译及使用
估计好多学习unix/linux的程序员都知道有这么一本书,最近笔者也开始膜拜膜拜此书,在编译源代码的时候,遇到了一些问题,现在在这里做下总结,加深自己的印象,或许也有遇到此问题的同仁,可以参考参考! ...
- UNIX环境高级编程-第三版
Unix环境高级编程-第三版 之前学习了<Linux系统编程>对于常见的概念和函数都有了基础的认知,这里准备通过这本书,深入学习系统API相关内容.笔记内容会有所倾向,不会严格反应书本内容 ...
- UNIX环境高级编程(第三版 源码及编译好的静态库文件)
UNIX环境高级编程(第三版) 源码 及 库文件 链接: https://pan.baidu.com/s/1tPY17lWNDEbzkOwZaRUUNg 提取码: 1024 复制这段内容后打开百度网盘 ...
- 《UNIX环境高级编程(第3版)》
<UNIX环境高级编程(第3版)> 基本信息 原书名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison ...
- 开发日记-20190827 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 3
Referred Blogs 文件描述符标志,文件状态标志 Linux中文件描述符fd和文件指针flip的理解 Linux编程–文件描述符fd 文件共享 Unix支持在不同进程间共享文件. 内核使用了 ...
- 开发日记-20190822 关键词 读书笔记《Unix环境高级编程(第二版)》《掌控习惯》DAY 2
Preface 话说,昨天开始尝试着去改变自己,从基础的习惯开始,11:30准时睡觉,平时差不多12:30才睡觉.按理说,比平时早了一个小时睡觉吧,然后我就把闹钟提前了45分钟,想着还能比平常多睡15 ...
- UNIX环境高级编程(三)—— 静态链接库与动态链接库
动态链接库一般不开放源码,需要建工程才能使用(其中提供的接口和 API): 0. .a/.o/.so What are .a and .so files? .o 就相当于 windows 里的 obj ...
- 开发日记-20190828 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 4
Part 1 文件与目录 设置用户ID和设置组ID 与一个进程相关联的ID有6个或更多. 实际: 实际用户ID/实际组ID 我们实际上是谁 有效: 有效用户ID/有效组ID/附属组ID 用于文件访问权 ...
- 开发日记-20190902 关键词 读书笔记《Unix环境高级编程(第二版)》DAY 7
读目录 对某个目录具有存取许可权的单一用户都可读该目录,但是只有内核才能与目录(防止文件系统发生混乱).一个目录的写许可权位和执行许可权位决定了在该目录中是否能够创建新文件以及删除文件,它们并不表示能 ...
最新文章
- oracle控制文件都一样么,Oracle控制文件详解
- [云炬创业基础笔记]第十一章创业计划书测试3
- 超详细!百度富媒体检索比对系统的关键技术
- 怎样把php网站转为h5,【php】php如何把网页中的一部分生成.jpg
- android远程桌面软件毕设_2019 远程桌面解决方案综述
- dedecms织梦上传图片302Error错误
- MySQL 入门常用命令大全
- 浅谈嵌入式技术的发展
- 为什么编c语言总有一个错误,为什么程序最后总会显示有1个错误
- 记YY的一次面试经历
- Right-BICEP 测试四则运算程序
- Word图片保存后失真(变模糊)解决方法
- 输入法自定义短语笔记/md常用配置/搜狗输入法自定义词库推荐
- turtle绘制皮卡丘
- 初识Calcite——使用实例
- 2019-2022年中国定期存款基准利率走势(附三个月定期、半年定期、一年定期、二年定期及三年定期存款基准利率)[图]
- Python找出所有的水仙花数
- 独家送书福利(6本)【隐秘而伟大】这群神秘的程序员,干了票大的
- 非常简单的中英互译在线翻译操作方法
- magic-api的使用体验