步骤
一、代码下载:https://pan.baidu.com/s/1mpr9GmagK0B_cfe2vHA2RQ
提取码:hifh
二、把代码解压并复制到/usr/bin目录下(一定要把代码放到该目录下)
cp -R /你解压的代码的目录/unpv22e /root/bin
三、编译unpv22e/lib目录下的文件步骤如下:
1.切换到
cd /root/bin/unpv22e
2.输入以下命令并敲 回车键
./configure
操作结果如下图
3.修改第2步自动生成的config.h文件
vi config.h
//注释掉56 57 58 行代码
56 // #define uint8_t unsigned char
57 // #define uint16_t unsigned short
58 // #define uint32_t unsigned int
//在文件末尾添加MSG_R和MSG_W和_GNU_SOURCE定义
65 typedef unsigned long ulong_t; //备注:此处,有的在前面加了#define ,但我没有加
66 #define MSG_R 0400
67 #define MSG_W 0200
68 #define _GNU_SOURCE
操作结果如下图
4.修改unpv22e/lib目录下的wrapunix.c文件
cd lib
vi wrapunix.c
//然后将该文件的第184行的mktemp函数替换为mkstemp函数
wrapunix.c文件的修改如下图
5.输入以下命令以便编译lib
make
make成功后在 /root/bin/unpv22e会有一个libunpipc.a文件,如下图所示
6.将生成的libunpipc.a复制到/usr/lib中。
cd ..
cp /root/bin/unpv22e/libunpipc.a /usr/lib/
四、编译书中的第一个例子(即第3章的第一个例子,Unix网络编程卷2的第二版中的第21页的图3-2的代码)
cd svipc/
gcc ftok.c -lunpipc -lrt -lpthread
//运行 ./a.out 文件
结果如图