2017-2018-1 20155321 《信息安全系统设计基础》第六周学习总结
教材学习内容总结
-
本周主要学习了异常控制流,计算机主要有四种不同类型的异常:中断、故障、终止、和陷阱。
-
fork()函数的学习
-
信号机制的学习
- 信号的安装
由上图可知,可用signal()安装一个信号。第一个参数指定信号的值,第二个参数可以设为SIG_IGN(忽略)或者设为SIG_DFL(系统默认方式处理)
2.sigaction()函数
此函数用于改变进程接收到特定信号后的行为。第一个参数是信号的值(不能是SIGKILL和SIGSTOP)。第二个参数是指向实例的一个指针,在结构sigaction的实例中,指定对特定信号的处理,可以为空,进程会以缺省方式对信号处理;第三个参数oldact指向的对象用来保存返回的原来对相应信号的处理,可指定oldact为NULL。如果后两个参数都设为NULL,那么sigaction()函数可检测信号的有效性3.用alarm()发送信号
4.用kill()发送信号
- 信号的安装
教材学习中的问题和解决过程
-
问题1:在编译kill.c时出了问题,如下图所示,显示没有csapp.h文件
-
问题1解决方案:在头文件处的写法改成"csapp.h",编译即可通过,如下图所示:
代码调试中的问题和解决过程
-
问题1:在fork()学习的过程中,遇到了如下图所示的报错:
-
问题1解决方案:因为调用了pid,因此要加上头文件,之后编译就没问题了
代码托管
上周考试错题总结
-
错题1:short sx=-12345;int x = sx;unsigned ux = sx;
A .sx,x,ux的十六进制表示中的最后两个字节是0xcfc7
B .ux == 0xffffcfc7
C .ux == 0x0000cfc7
D .x == 0xffffcfc7
E .x == 0x0000cfc7
-
原因:正确答案: A C D
-
理解情况:课本p54
-
错题2:short int v=-12345;unsigned short uv=(unsigned short) v;那么
A .v=-12345, uv=53191
B .v=uv=0xcfc7
C .v,uv的底层的位模式不一样
D .v,uv的值在内存中是不一样的
-
原因:正确答案: A B
-
理解情况:p49, 有符合数和无符号数的转换,值不同,位模式不变,要深入理解”信息=位+上下文“
-
错题3:C语言中,字符串被编码为一个以0结尾的字符数组。
A .正确
B .错误
-
原因:正确答案: A ,我理解有误
-
理解情况:课本p34, null的值是0
-
错题4:下面和代码可移植性相关的C语言属性有()
A .#define
B .typedef
C .sizeof()
D .union
-
原因:正确答案: A B C
-
理解情况:#define可以定义宏使得变量可移植,typedef可以使得类型可移植,sizeof()使得不同类型长度可移植。
本周结对学习情况
- 20155330
- 结对学习内容
- 书本第八章、第十章的内容
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 20篇 | 400小时 | |
第六周 | 162/528 | 1/8 | 15/90 | |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:12小时
-
实际学习时间:15小时
-
改进情况:改善自学看书的方法,提高看书学习效率
(有空多看看现代软件工程 课件 软件工程师能力自我评价表)