20145315 《信息安全系统设计基础》第十一周学习总结
20145315 《信息安全系统设计基础》第十一周学习总结
代码
exec
-
exec1
-
exec2
-
exec3
-
exec1和exec2是等价的
-
execvp()会从PATH 环境变量所指的目录中查找符合参数file 的文件名, 找到后便执行该文件, 然后将第二个参数argv 传给该欲执行的文件。
-
exec系列的函数最后一个参数都必须是null
env
-
environ打印/修改环境变量
-
environvar打印环境变量表
argv
-
argv.h
-
连接编译三个文件
课本第八章内容
异常
异常就是控制流中的突变,用来相应处理器状态中的某些变化。状态变化称为事件。
异常表:
当处理器检测到有事件发生时,它就会通过异常表(一种跳转表),进行一个间接过程调用(异常),到异常处理程序。
异常的分类
- 中断:异步发生,来自处理器外部的I/O设备信号的结果。
- 陷阱:有意的异常,是执行一条指令的结果。
- 故障:故障由错误情况引起,可能被故障处理程序修正。处理器将控制转移给故障处理程序。如果错误能够被处理程序修正,它就将控制返回到引起故障的指令。如果不能被修正,处理程序返回到内核中的abort例程,abort例程会终止引起故障的应用程序。
- 终止:终止是不可恢复的致命错误造成的结果。从不将控制返回给应用程序,处理程序将控制返回给一个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信号。
数组和指针
- 指针数组是数组,数组里的元素是指针
- 数组指针是指针,指向一个类型和元素个数都固定的数组
- 指针函数是函数,返回值类型是指针
- 函数指针是指针,指向函数的指针,函数名就是函数指针
问题及解决
- 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 |
参考资料
- 《信息安全系统设计基础》教学进程
- ...