2017-2018-1 20155321 《信息安全系统设计基础》第六周学习总结

2017-2018-1 20155321 《信息安全系统设计基础》第六周学习总结

教材学习内容总结

  • 本周主要学习了异常控制流,计算机主要有四种不同类型的异常:中断、故障、终止、和陷阱。

  • fork()函数的学习

  • 信号机制的学习

    1. 信号的安装


      由上图可知,可用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小时

  • 改进情况:改善自学看书的方法,提高看书学习效率

(有空多看看现代软件工程 课件 软件工程师能力自我评价表)

参考资料

原文地址:https://www.cnblogs.com/rafell/p/7750677.html