20145227《信息安全系统设计基础》第十二周学习总结
20145227《信息安全系统设计基础》第十二周学习总结
教材学习内容总结
- 本周主要复习了前三周的知识点和代码的分析。前三周博客链接如下:
- 20145227《信息安全系统设计基础》第九周学习总结
- 20145227《信息安全系统设计基础》第十周学习总结
- 20145227《信息安全系统设计基础》第十一周学习总结
代码分析中出现的问题与解决汇总
运行testpp.c代码时出现段错误:
- 解决:问题在于没给pp分配空间就调用了pp[0],毕竟声明的时候只是一个指针,而指针必须要初始化。有两种解决办法:
(1)pp[0] = malloc(20);
修改为pp = malloc(20); pp[0] = malloc(20);
然后即可成功。
(2)把pp[0] = malloc(20);
去掉[0],这样就分配了20个字节给了pp这个数组指针,再编译运行就ok了。
运行教材P598练习10.1时出错:
- 解决:
- 缺少csapp.h的头文件,这是书的作者编写的一个头文件,使用的时候要把此头文件csapp.h和csapp.c文件包含到你的系统中。先到网上下载这两个文件,下载地址(http://download.csdn.net/detail/tzasd89812/4206284);
- 在命令行下输入
sudo mv csapp.h csapp.c /usr/include
指令将文件移到/usr/include
中;打开csapp.h头文件,在#end if
前面加上一句#include <csapp.c>
- 由于csapp.c中包含线程的一部分,所以编译的时候要加上-lpthread选项,否则很多错误,此时编译运行:
- 还是出错了。按照提示将代码中的Open,Close换成了open和close,之后成功运行:
main函数的定义:int main(int argc, char *argv[]){}
-
argc是用来表示在命令行下输入命令时的参数个数,包括指令本身;argv[]是用来取得你输入的参数。
-
涉及到的头文件的用处:
stdio.h 标准输入输出
stdlib.h C标准函数库
unistd.h Unix类系统定义符号常量
fcntl.h 定义了很多宏和open,fcntl函数原型
sys/types.h 基本系统数据类型
dirent.h unix类目录操作的头文件,包含了许多UNIX系统服务的函数原型,例如opendir函数、readdir函数。
termios.h 在Posix规范中定义的标准接口
本周代码托管链接
https://git.oschina.net/20145227/IS-Design-20145227/tree/master/ch12
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0 | 2/2 | 20/20 | |
第二周 | 100/100 | 1/3 | 20/40 | |
第三周 | 200/300 | 1/4 | 22/62 | |
第五周 | 200/500 | 1/5 | 22/84 | |
第六周 | 274/774 | 1/6 | 22/106 | |
第七周 | 127/901 | 2/8 | 22/128 | |
第八周 | 50/951 | 2/10 | 22/150 | |
第九周 | 418/1369 | 2/12 | 22/172 | |
第十周 | 485/1854 | 2/14 | 22/194 | |
第十一周 | 628/2482 | 3/17 | 32/226 | |
第十二周 | 68/2550 | 2/19 | 32/258 |