UNIX網絡編程之旅-配置unp.h頭文件環境

最近在學習Unix網絡編程(UNP),書中steven在處理網絡編程時只用了一個#include 「unp.h」  至關有個性而且也很便捷編程

因而我把第三版的源代碼編譯實現了這個過程,算是一種個性化的開發環境的搭建吧,順便把過程記錄下來,以便本身之後查閱。網絡

 

首先去網上找到源代碼包unpv.13e.tar.gz 一找一大堆架構

解壓縮到你的某個目錄,unpv13e裏面大體有這些目錄dom

├── aclocal.m4 
├── advio 
├── bcast 
├── config.guess 
├── config.h 
├── config.h.in 
├── config.log 
├── config.status 
├── config.sub 
├── configure 
├── configure.in 
├── debug 
├── DISCLAIMER 
├── icmpd 
├── inetd 
├── install-sh 
├── intro 
├── ioctl 
├── ipopts 
├── key 
├── lib 
├── libfree 
├── libgai 
├── libroute 
├── libunp.a(就是爲了生成這個文件) 
├── Make.defines 
├── Make.defines.in 
├── Makefile 
├── Makefile.in 
├── mcast 
├── mysdr 
├── names 
├── nonblock 
├── oob 
├── ping 
├── README 
├── route 
├── rtt 
├── sctp 
├── select 
├── server 
├── sigio 
├── sock 
├── sockopt 
├── sparc64-unknown-freebsd5.1 
├── ssntp 
├── streams 
├── tcpcliserv 
├── test 
├── threads 
├── traceroute 
├── udpcksum 
├── udpcliserv 
├── unixdomain 
├── unpv13e 
└── VERSIONtcp

 

首先查看README 通常狀況下咱們只須要進行第一步和第二步 其餘的是一些與其餘架構有關的狀況無論函數

執行下面兩部生成libunp.a學習

1.   ./configurespa

2.     cd lib debug

make (在lib上層目錄中生成libunp.a)unix

 

生成libunp.a。複製這個靜態庫到/usr/lib/和/usr/lib64/中,由於後來編譯程序的話須要用到這個靜態庫。還得在環境變量中將這兩個路徑加上。

 

接下來找到unp.h和config.h

1.我在個人主目錄下新建了一個unp目錄,專門處理unp的例子。而後把lib下的unp.h和上層目錄的config.h放入unp目錄,而後在unp目錄下新建各個要實踐的程序的章節目錄 好比一開頭的time server例子我就新建了個time server目錄,在裏面寫書中的例子程序

:)

3.unp.h中將#include "../config.h"改爲#include "config.h"

2.在unp.h中須要添加一行: 
#define MAX_LINE 2048

 

頭文件爲

#include "../unp.h"便可

 

若是書寫的程序出現err_sys()等err函數找不到的狀況 這是由於steven大神對錯誤處理進行了封裝 能夠搜索apueerror.h這個文件(有興趣的同窗能夠研究下封裝代碼 篇幅小不難的) 而後放入unp目錄 接着在程序中 #include "apueerror.h"便可

 

至此環境搭建結束,你們能夠開始UNP編程之旅了,祝你們早日學成!~~~  哈哈

相關文章
相關標籤/搜索