20145333《信息安全系统设计基础》第十二周学习总结
教材学习内容总结
本周主要复习了前三周的学习内容,对之前的代码进行了仔细地分析、学习
前三周学习总结链接:
视频学习内容总结
一、指针数组与数组指针:
1、指针数组:即用于存储指针的数组,也就是数组元素都是指针
-
形式如:int *p[n]
-
表示定义有n个指针分别为:p[0]、p[1]、...、p[n-1]
2、数组指针:即指向数组的指针,指针指向一个类型和元素个数都固定的数组
-
形式如:int (*p)[n]
-
表示定义一个指向一个数组的指针p
二、指针函数与函数指针:
1、指针函数:即返回值是指针类型的函数
-
形式如:void *comp()
-
表示comp为有关指针的一个函数
2、函数指针:即指向函数的指针,函数名就是函数指针
-
形式如:void (*comp)()
-
表示comp为一个指向函数的指针
三、区别方法——右左右左法:
具体方法:
-
从变量名开始,先右再左地,交替地一个一个向外看,在纸上写下:“变量是”
-
若向右遇到左圆括号,在纸上写下:“函数,参数是”,并用同样的方法处理括号中每一个参数——在纸上写下:“返回”
-
若向右遇到方括号,在纸上写下:“数组,长度为{方括号的内容},元素类型为”
-
若向右遇到右圆括号,什么也不做
-
若向左遇到*,在纸上写下:“指针,指向”
-
若向左遇到任何类型,在纸上写下对应的类型名
举例说明:分析void ((*fp1)(int))[10]
-
从fp1开始——fp1是
-
向右,遇到右括号,什么也不做
-
向左,遇到*——指针,指向
-
向右,遇到左圆括号——函数,参数是int,返回
-
向左,遇到*——指针,指向
-
向右,遇到左方括号——数组,长度为10,元素类型为
-
向左,遇到*——指针,指向
-
向右,已经到声明结尾,什么也不做
-
向左,遇到void——void
-
结果是:fp1是 指针,指向 函数,参数是int,返回指针,指向数组,长度为10,元素类型为 指针,指向 void
四、信号处理:
信号:是UNIX中所使用的进程通信的一种最古老的方法;是在软件层次上对中断机制的一种模拟,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一样的。
-
使用kill -l来查看有关信号的信息
-
使用stty -a来查看快捷键的用法
-
SIG_IGN是忽略信号的处理程序,表示无返回值的函数指针,指针值为1
-
SIG_DFL是默认信号的处理程序,表示无返回值的函数指针,指针值为0
五、信号的产生:
-
用户产生:比如通过键盘输入
-
硬件产生
-
进程发送
-
内核产生:比如设定的闹钟,超时会产生SIGALRM信号
六、信号处理函数:
-
signal:不知道信号被发送的原因;信号处理过程中不能安全地阻塞其他信号。
-
sigaction:在信号处理程序被调用时,系统建立的新信号屏蔽字会自动包括正被递送的信号;保证了在处理一个给定的信号时,若这种信号再次发生,那么它会被阻塞到对前一个信号的处理结束为止
-
响应函数设置后便会一直有效,不会重置。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 16篇 | 400小时 | |
第一周 | 80/80 | 1/1 | 20/20 | |
第二周 | 130/210 | 1/2 | 18/38 | |
第三周 | 300/510 | 1/3 | 22/60 | |
第五周 | 300/810 | 1/4 | 20/80 | |
第六周 | 150/960 | 1/5 | 20/100 | |
第七周 | 120/1080 | 1/6 | 20/120 | |
第八周 | 0/1080 | 1/7 | 20/140 | |
第九周 | 300/1380 | 1/8 | 20/160 | |
第十周 | 428/1808 | 1/9 | 20/180 | |
第十一周 | 429/2237 | 1/10 | 20/200 | |
第十二周 | 0/2237 | 1/11 | 20/220 |