簡體   English   中英

unix網絡編程書代碼因舊操作系統有bug,如何解決這個問題或在哪里獲取新代碼?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM