14.3
|
Here is just the for loop:
for ( ; ; ) {
if ( (n = Recv(sockfd, recvline, MAXLINE, MSG_PEEK)) == 0)
break; /* server closed connection */
Ioctl(sockfd, FIONREAD, &npend);
printf("%d bytes from PEEK, %d bytes pending\n", n, npend);
n = Read(sockfd, recvline, MAXLINE);
recvline[n] = 0; /* null terminate */
Fputs(recvline, stdout);
}
|
14.4
|
The data is still output because falling off the
end of the main function is the same as returning from
this function, and the main function is called by the C
startup routine as follows:
exit(main(argc, argv));
Hence, exit is called, plus the
standard I/O cleanup routine is called.
|