学习本书之前,为了了解C语言,先通读了《C程序设计语言》。但对C语言的理解、熟悉可能还是不足,所以在学习本书的过程中,遇到看不懂的C代码,还要去查询、思考。
本书一开始,我就遇到了问题,运行不了程序。不知道在 MACOS 上面应该怎么编译并使其运行。所以学习编译并运行C代码。
OK,现在我们知道如何编译并运行文件了。
第一章
练习
1.3
socket error: Address family not supported by protocol family
1.4
在 while 函数体首行中添加
++bigger_than_zero_times;
1.5
for (int i=0; i<sizeof(buff); ++i) { Write(connfd, &buff[i], strlen(&buff[i])); }
计数器输出的值为 670--740之间,还会变化。原因是什么?
输出是这样
$ ./daytimetcpcli 127.0.0.1 Tue May 30 21:12:38 2017 ue May 30 21:12:38 2017 e May 30 21:12:38 2017 May 30 21:12:38 2017 May 30 21:12:38 2017 ay 30 21:12:38 2017 y 30 21:12:38 2017 30 21:12:38 2017 30 21:12:38 2017 0 21:12:38 2017 21:12:38 2017 21:12:38 2017 1:12:38 2017 :12:38 2017 12:38 2017 2:38 2017 :38 2017 38 2017 8 2017 2017 2017 017 17 7还有乱码
有错误。我是想输出一个字符,而实际输出的是 i 之后的所有字符。原因是 strlen(&buff[i]) 这里写了输出的长度。这里改为 1 就正常了。所以答案是
for (int i=0; i<sizeof(buff); ++i) { Write(connfd, &buff[i], 1); }
时间: 2024-12-29 23:33:02