UNIX环境高级编程源码

一、下载源码

利用wget命令下载源码,源码地址http://apuebook.com/src.3e.tar.gz
可以在服务器的根目录下创建文件夹,mkdir
1.mkdir code 2.cd code 3.wget http://apuebook.com/src.3e.tar.gz

二、解压源码

在当前文件夹解压文件
tar -zxvf src.3e.tar.gz

三、安装libbsd-dev

若服务器为Ubantu系统执行下边指令
apt-get install libbsd-dev

四、编译一下文件

  1. cd apue.3e 2. make

五、复制文件

cp ./include/apue.h /usr/include/

cp ./lib/libapue.a /usr/local/lib/
cp ./lib/libapue.a /usr/lib/

六、新建error.h文件

新建error文件向文件输入内容
1.touch error.h 2.vi error.h (输入i进入编辑模式,按下esc退出编辑模式 ,在按 :wq 退出vi模式)
将下列代码写入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 */
}

七、将文件复制到/usr/include/

cp error.h /usr/include/
以后在代码中引入头文件写
#include “apue.h”
#include “error.h”
即可

UNIX环境高级编程源码相关推荐

  1. unix环境高级编程之 read与write 函数详解

    学习记录:unix环境高级编程之 read 与write  函数详解 备注:本博文非本人所写,本人觉得此文讲的非常地道通俗易懂,所以摘录在此以方便以后再次查看 read函数从打开的设备或文件中读取数据 ...

  2. UNIX环境高级编程之第4章:文件和文件夹-习题

    4.1 stat函数是尾随符号链接的,所以用stat替换lstat不会显示符号链接的信息 4.2 在一个目录下先再shell中输入umask shell进程再进行创建文件的操作.其权限抖都会被屏蔽 4 ...

  3. UNIX环境高级编程(屏幕打印和inet_ntoa输出异常问题)

    一.来回在屏幕和文件之间打印 在网上没找到在屏幕和文件来回打印的方法,翻了下UNIX环境高级编,里面有个freopen用于在一个指定的流上打开一个指定的文件,如果要将标准输出打印到文件,需要调用该函数 ...

  4. UNIX环境高级编程(第三版 源码及编译好的静态库文件)

    UNIX环境高级编程(第三版) 源码 及 库文件 链接: https://pan.baidu.com/s/1tPY17lWNDEbzkOwZaRUUNg 提取码: 1024 复制这段内容后打开百度网盘 ...

  5. unix环境高级编程 pdf_UNIX系统编程宝典,每一本都值得程序员珍藏

    这几本UNIX系统编程宝典,重印无数次,几代程序员都视如珍宝的几本书,小编在出版圈里快十年了,见证了这本书图灵版.异步社区版的出版.营销,对这套书倾注了一定的感情.今天继续分享给你们,好书总会有人还不 ...

  6. UNIX环境高级编程笔记

    1.setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, len);   SO_REUSEADDR套接口选项允许为以下四个不同的目的提供服务:   ...

  7. UNIX环境高级编程(第三版)关于apue.h的用法

    UNIX环境高级编程(第三版)中的例子用到apue.h这个头文件,但是书里面写的地址已经不能访问. 经过一番查找之后,找到如下解决方案: 1.到www.apuebook.com上下载第2版的源码,也可 ...

  8. UNIX环境高级编程-环境配置

    背景说明: 学习<UNIX环境高级编程>,里面的示例程序用到了作者写的模块. 把第一个示例代码敲入,结果当头一棒. 咦,怎么编不过去. 网上找资料发现好人不少,问题终于解决. 特此,把我的 ...

  9. 【UNIX环境高级编程】

    [UNIX环境高级编程] 环境搭建 1.下载源码 wget http://apuebook.com/src.3e.tar.gz 2.解压 tar -zxvf src.3e.tar.gz 3.安装lib ...

最新文章

  1. 梯度下降算法_神经网络梯度下降算法
  2. Linux下配置SNMP
  3. 关于fragment
  4. redis中的quicklist
  5. pytorch手动实现梯度下降法,随机梯度法--基于logistic Regression并探索Mini batch作用
  6. 【渝粤教育】 国家开放大学2020年春季 1050金融理论前沿课题 参考试题
  7. ORDER BY NEWID()【原创】
  8. win10怎么把c盘锁住_老司机教你win10下怎么清理c盘
  9. 荣耀青春30青春版能升鸿蒙,或是新一代拍照神器 荣耀30青春版今日发布
  10. pythonredis实例_Python读写Redis数据库操作示例
  11. 2021年计算机二级考试广东卷英语,2021年广东计算机等级考试考试模拟练习卷.doc...
  12. 网络热词下的民意传播
  13. nginx 配合jersey+netty的奇怪问题
  14. 线性代数 --- 什么是矩阵的逆?(个人笔记扫描版)
  15. 发了两个月传单,他转行做了程序员
  16. 息县装修“茶几的选择”
  17. VS修改项目解决方案名称
  18. Android BLE HIDS Data ,从问询DB 到写入Android 节点的flow之二
  19. 美国的学位制度以及各学位的英文简写
  20. 基层主管如果没这些心态,难!

热门文章

  1. 论文写作技巧----公式
  2. Python合并PDF
  3. 智能体适能训练评估系统-体姿体态评估系统软件
  4. 【IO流】初学IO流
  5. 【重载和重写的区别】
  6. 创成汇:利用所学为国家医疗领域尽自己的一份力!海归的创业路_
  7. three.js 笔记 --- 渲染图片 和 渲染obj,mtl文件
  8. 【网络】https单向认证和双向认证
  9. 图像的空间分辨率和幅度分辨率
  10. vue项目权限:数据权限、菜单权限、按钮权限