为了先完整编译通过,需要以下几个步骤:
1、进入linux子目录,执行 make。(此步骤为打补丁。)
2、返回上一级目录,打开文件 simplec.c,添加头文件 #include <stdio.h>。
3、对以下文件中的 static void set_address 去掉 static :
connectto.c
tcpsink.c
3、在根目录执行make。
戡误一:
在做 shutdownc/tcpecho 的实验时,客户端 shutdownc 总是输出错误:
shutdownc: fputs failed
跟书上说的“server disconnected”完全不同。
相关代码在 shutdown.c 第50行处:
if ( fputs( lin, stdout ) )
error( 1, errno, "fputs failed" );
查 fputs 的 man 手册,可知:
fputs() return a non-negative number on success, or EOF on error
所以要改成:
if ( fputs( lin, stdout ) == EOF) error( 1, errno, "fputs failed" );
重新编译,再做实验,输出与书中一致:
shutdownc: server disconnected