[英]unix network programming book code has bugs due to old OS, how to solve this or where to get new code ?
我試圖在Linux上下載並運行c代碼
UNIX網絡編程,第1卷,第2版:網絡API:套接字和XTI,Prentice Hall,1998,ISBN 0-13-490012-X。 這是由W.史蒂文斯理查德
http://kohala.com/start/unpv12e/unpv12e.tar.gz
但是,當我構建代碼時,我得到了錯誤:
gcc -g -O2 -D_REENTRANT -Wall -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:114: error: redefinition of âstruct in_pktinfoâ
make: *** [connect_nonb.o] Error 1
我注釋掉了struct in_pktinfo。 然后我遇到了新的錯誤:
gcc -g -O2 -D_REENTRANT -Wall -c -o in_cksum.o in_cksum.c
gcc -g -O2 -D_REENTRANT -Wall -c -o inet_ntop.o inet_ntop.c
inet_ntop.c: In function âinet_ntopâ:
inet_ntop.c:61: error: argument âsizeâ doesnât match prototype
/usr/include/arpa/inet.h:67: error: prototype declaration
make: *** [inet_ntop.o] Error 1
我不想一個接一個地調試整個575文件。
沒有這些錯誤,我在哪里可以獲得新代碼? 新版本書有無錯誤的代碼?
舊代碼僅適用於舊操作系統。
謝謝
好吧, 作者理查德史蒂文斯於1999年去世,書仍然是一個非常好的參考。 關於很多超過10年的技術參考,你不能這么說。
我剛剛從http://www.unpbook.com/unpv13e.tar.gz獲取源代碼,並按照自述文件進行操作,這基本上意味着運行./configure並在目錄中調用make
/lib
/libfree
/intro
我修復了一個地方(libfree / inet_ntop.c:60並將大小更改為socklen )並在我當前的Ubuntu上編譯。 我沒有運行它,但我相信至少大部分都可以運行。
理查德史蒂文斯的書仍然很出色,值得為保持他的資源運行所需的微小努力。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.