UNIX环境高级编程源码
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
四、编译一下文件
- 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环境高级编程源码相关推荐
- unix环境高级编程之 read与write 函数详解
学习记录:unix环境高级编程之 read 与write 函数详解 备注:本博文非本人所写,本人觉得此文讲的非常地道通俗易懂,所以摘录在此以方便以后再次查看 read函数从打开的设备或文件中读取数据 ...
- UNIX环境高级编程之第4章:文件和文件夹-习题
4.1 stat函数是尾随符号链接的,所以用stat替换lstat不会显示符号链接的信息 4.2 在一个目录下先再shell中输入umask shell进程再进行创建文件的操作.其权限抖都会被屏蔽 4 ...
- UNIX环境高级编程(屏幕打印和inet_ntoa输出异常问题)
一.来回在屏幕和文件之间打印 在网上没找到在屏幕和文件来回打印的方法,翻了下UNIX环境高级编,里面有个freopen用于在一个指定的流上打开一个指定的文件,如果要将标准输出打印到文件,需要调用该函数 ...
- UNIX环境高级编程(第三版 源码及编译好的静态库文件)
UNIX环境高级编程(第三版) 源码 及 库文件 链接: https://pan.baidu.com/s/1tPY17lWNDEbzkOwZaRUUNg 提取码: 1024 复制这段内容后打开百度网盘 ...
- unix环境高级编程 pdf_UNIX系统编程宝典,每一本都值得程序员珍藏
这几本UNIX系统编程宝典,重印无数次,几代程序员都视如珍宝的几本书,小编在出版圈里快十年了,见证了这本书图灵版.异步社区版的出版.营销,对这套书倾注了一定的感情.今天继续分享给你们,好书总会有人还不 ...
- UNIX环境高级编程笔记
1.setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &opt, len); SO_REUSEADDR套接口选项允许为以下四个不同的目的提供服务: ...
- UNIX环境高级编程(第三版)关于apue.h的用法
UNIX环境高级编程(第三版)中的例子用到apue.h这个头文件,但是书里面写的地址已经不能访问. 经过一番查找之后,找到如下解决方案: 1.到www.apuebook.com上下载第2版的源码,也可 ...
- UNIX环境高级编程-环境配置
背景说明: 学习<UNIX环境高级编程>,里面的示例程序用到了作者写的模块. 把第一个示例代码敲入,结果当头一棒. 咦,怎么编不过去. 网上找资料发现好人不少,问题终于解决. 特此,把我的 ...
- 【UNIX环境高级编程】
[UNIX环境高级编程] 环境搭建 1.下载源码 wget http://apuebook.com/src.3e.tar.gz 2.解压 tar -zxvf src.3e.tar.gz 3.安装lib ...
最新文章
- 梯度下降算法_神经网络梯度下降算法
- Linux下配置SNMP
- 关于fragment
- redis中的quicklist
- pytorch手动实现梯度下降法,随机梯度法--基于logistic Regression并探索Mini batch作用
- 【渝粤教育】 国家开放大学2020年春季 1050金融理论前沿课题 参考试题
- ORDER BY NEWID()【原创】
- win10怎么把c盘锁住_老司机教你win10下怎么清理c盘
- 荣耀青春30青春版能升鸿蒙,或是新一代拍照神器 荣耀30青春版今日发布
- pythonredis实例_Python读写Redis数据库操作示例
- 2021年计算机二级考试广东卷英语,2021年广东计算机等级考试考试模拟练习卷.doc...
- 网络热词下的民意传播
- nginx 配合jersey+netty的奇怪问题
- 线性代数 --- 什么是矩阵的逆?(个人笔记扫描版)
- 发了两个月传单,他转行做了程序员
- 息县装修“茶几的选择”
- VS修改项目解决方案名称
- Android BLE HIDS Data ,从问询DB 到写入Android 节点的flow之二
- 美国的学位制度以及各学位的英文简写
- 基层主管如果没这些心态,难!