我正尝试在 Linux 上下载并运行 c 代码
UNIX 网络编程,第 1 卷,第二版:网络 API:套接字和 XTI,Prentice Hall,1998 年,ISBN 0-13-490012-X。作者是 W. Stevens Richard
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个文件。
我在哪里可以获得没有这些错误的新代码?新版书有没有错误的代码?
旧代码仅适用于旧操作系统。
谢谢
最佳答案
嗯,Author Richard Stevens于 1999 年去世,这本书仍然是非常好的引用资料。对于许多 10 多年前的技术引用资料,您不能这样说。
我刚刚从 http://www.unpbook.com/unpv13e.tar.gz 中获取了源代码并遵循自述文件,这基本上意味着运行 ./configure 并在目录中调用 make
/lib
/libfree
/intro
我修复了一个地方(libfree/inet_ntop.c:60 并将 size 更改为 socklen )并在我当前的 Ubuntu 上编译。我没有运行它,但我相信至少它的大部分都会起作用。
Richard Stevens 的书仍然很出色,值得为保持他的资源运行所需的小努力。
关于c - unix 网络编程书籍代码由于旧操作系统而存在错误,如何解决这个问题或从哪里获得新代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7947960/