《UNIX网络编程》(《UNIX Network Programming》)unp.h源代码编译问题

本文档详细介绍了如何编译《UNIX网络编程》一书中的源代码,包括下载unp.h等源文件,解压并进入unpv13e文件夹,解决编译过程中的错误,将头文件和静态链接库放入系统目录,以及解决书中例子的编译问题。过程中提到了编译命令、文件路径修改和系统配置调整等关键步骤。

《UNIX网络编程 卷1:从入门到放弃》上的代码和《UNIX环境高级编程》等书相似,需要下载与书配套的代码源文件放入环境变量中方可正确运行。

1. 下载unp.h等源文件。

http://www.unpbook.com上下载源代码(Source Code)。

2. 解压下载的unpv13e.tar.gz文件,并进入unpv13e文件夹。

cd unpv13e/

3. 编译

有README文件的一定要点开看!
执行以下命令:

./configure

cd lib
make

cd ../libfree
make

执行到这一步,报错:

error: conflicting types for ‘inet_ntop’

打开inet_ntop.c文件,注释#include

make

4. 将unp.h文件和静态链接库libunp.a放入系统目录

cd ..
vim ./lib/unp.h

将#include “../config.h”改成:#include “config.h”
拷贝头文件:

sudo cp ./config.h /usr/local/include
sudo cp ./lib/unp.h /usr/local/include

拷贝库文件

sudo cp ./libunp.a /usr/local/lib

大功告成???
怎么可能?!

5. 编译一下书中例子。

cd ./intro
make
gcc daytimetcpcli.c -o daytimetcpcli -lunp
./daytimetcpcli 127.0.0.1

然后报错:

connect error:Connection refused

默认daytime未开启。
可以进行如下操作:

sudo ./daytimetcpsrv

然后等等等。。。
执行:

./daytimetcpcli 127.0.0.1

运行成功!

Sat May 19 19:15:10 2018
UNIX Network Programming Volume 2》(Unix网络编程卷2英文版,djvu格式,带绿色小巧的阅读器) 原书名: UNIX Network Programming Volume 2:Interprocess Communications 2nd ed. 原出版社: Prentice Hall/Pearson 作者: W.Richard Stevens preface part 1. introduction chapter 1. introduction 1.1 introduction 3 1.2 processes, threads, and the sharing of information 5 1.3 persistence of ipc objects 6 1.4 name spaces 7 1.5 effect of fork, exec, and exit on ipc objects 9 1.6 error handling: wrapper functions 11 1.7 unix standards 13 1.8 road map to ipc examples in the text 15 1.9 summary 16 chapter 2. posix ipc 2.1 introduction 19 2.2 ipc names 19 2.3 creating and opening ipc channels 22 2.4 ipc permissions 25 2.5 summary 26 .chapter 3. system v ipc 3.1 introduction 27 3.2 key_t keys and ftok function 28 3.3 ipc_perm structure 30 3.4 creating and opening ipc channels 30 3.5 ipc permissions 32 3.6 identifier reuse 34 3.7 ipcs and ipcrm programs 36 3.8 kernel limits 36 3.9 summary 38 part 2. message passing chapter 4. pipes and fifos 4.1 introduction 43 4.2 a simple client--server example 43 4.3 pipes 44 4.4 full-duplex pipes 50 4.5 popen and pc1ose functions 52 4.6 fifos 54 4.7 additional properties of pipes and fifos 58 4.8 one server, multiple clients 60 4.9 iterative versus concurrent servers 66 4.10 streams and messages 67 4.11 pipe and fifo limits 72 4.12 summary 73 chapter 5. posix message oueues 5.1 introduction 75 5.2 mq_open, mq_c1ose, and mq_un1ink functions 76 5.3 mq_getattr and mq_setattr functions 79 5.4 mq_send and mq_receive functions 82 5.5 message queue limits 86 5.6 mq_notify function 87 5.7 posix realtime signals 98 5.8 implementation using memory-mapped i/o 106 5.9 summary 126 chapter 6. system v message queues 6.1 introduction 129 6.2 msgget function 130 6.3 msgsnd function 131 6.4 msgrcv function 132 6.5 msgctl function 134 6.6 simple programs 135 6.7 client-server example 140 6.8 multiplexing messages 142 6.9 message queues w
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值