20145315 《信息安全系统设计基础》第十一周学习总结

20145315 《信息安全系统设计基础》第十一周学习总结

代码

exec

  • exec1

  • exec2

  • exec3

  • exec1和exec2是等价的

  • execvp()会从PATH 环境变量所指的目录中查找符合参数file 的文件名, 找到后便执行该文件, 然后将第二个参数argv 传给该欲执行的文件。

  • exec系列的函数最后一个参数都必须是null

env

  • environ打印/修改环境变量

  • environvar打印环境变量表

argv

  • argv.h

  • 连接编译三个文件

课本第八章内容

异常

异常就是控制流中的突变,用来相应处理器状态中的某些变化。状态变化称为事件。

异常表:

当处理器检测到有事件发生时,它就会通过异常表(一种跳转表),进行一个间接过程调用(异常),到异常处理程序。

异常的分类

  1. 中断:异步发生,来自处理器外部的I/O设备信号的结果。
  2. 陷阱:有意的异常,是执行一条指令的结果。
  3. 故障:故障由错误情况引起,可能被故障处理程序修正。处理器将控制转移给故障处理程序。如果错误能够被处理程序修正,它就将控制返回到引起故障的指令。如果不能被修正,处理程序返回到内核中的abort例程,abort例程会终止引起故障的应用程序。
  4. 终止:终止是不可恢复的致命错误造成的结果。从不将控制返回给应用程序,处理程序将控制返回给一个abort例程,该例程将会终止这个应用程序。

进程

  • 进程:一个执行中的程序的实例。

  • 并发流:一个逻辑流的执行在时间上与另一个流重叠,称为并发流,这两个流被称为并发地运行。

    • 一个进程和其他进程轮流运行的概念称为多任务。

    • 一个进程执行它的控制流的一部分的每一个时间段称为时间片。

  • 并行流

    • 如果两个流并发地运行在不同的处理器核或者计算机上,称为并行流。
  • 并行流是并发流的真子集。

函数

  • fork函数 父进程创建一个新的运行子进程
  • getpid函数 返回调用进程PID
  • getppid函数 返回父进程的PID(创建调用进程的进程)
  • exit函数 以status退出状态来终止进程。(或从主程序返回一个整数值来退出状态)
  • waitpid函数等待子进程终止或停止,waitpid挂起调用进程的执行直到它的等待集合中的一个子进程终止。
  • wait函数 调用wait(&status)等价于调用waitpid(-1,&status,0),等待所有子进程。
  • sleep函数 让进程休眠,将一个进程挂起一段指定的时间。
  • pause函数 让调用函数休眠,直到该进程收到一个信号
  • execve函数 在当前进程的上下文中加载并运行一个新程序。
  • getnev函数 在环境数组中搜寻字符串"name=value",如果找到了就返回一个指向value的指针,否则返回null。
  • 如果环境数组包含“name=oldvalue”的字符串,那么unsetenv会删除它,而setenv会用newvalue代替oldvaule,但只有overwrite非零才会这样。如果name不存在,那么setenv就把“name=newvalue”添加到数组中。

发送信号

  • kill 例:unix> /bin/kill -9 15213 是发送信号9(SIGKILL)给进程15213
  • 进程通过alarm函数向自己发送SIGALRM信号。

数组和指针

  • 指针数组是数组,数组里的元素是指针
  • 数组指针是指针,指向一个类型和元素个数都固定的数组
  • 指针函数是函数,返回值类型是指针
  • 函数指针是指针,指向函数的指针,函数名就是函数指针

问题及解决

  1. argv中argtest编译失败,提示如下

连接缺失了相关目标文件makeargv.o,编译失败,需要连接makeargv.o和freemakeargv.o一起编译才能成功,解决如下:

代码托管截图

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 20/200 1/2 20/20
第二周 30/200 2/4 18/38
第三周 50/200 1/4 22/30
第四周 0/200 0/0 0/30
第五周 100/200 2/2 25/30
第六周 100/200 2/2 25/30
第七周 100/200 1/2 25/30
第九周 100/200 1/2 25/30
第十周 100/200 1/2 25/30
第十一周 100/200 1/2 25/30

参考资料

原文地址:https://www.cnblogs.com/5315hejialei/p/6106929.html