zoukankan      html  css  js  c++  java
  • 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

    参考资料

  • 相关阅读:
    编辑器、编译器、文件、IDE等常见概念辨析
    二叉排序树的实现
    模板
    Codeforces Round #690 (Div. 3)
    Educational Codeforces Round 100 (Rated for Div. 2)
    Codeforces 414-B. Mashmokh and ACM(数位dp)
    Codeforces 339D-Xenia and Bit Operations(线段树)
    Educational Codeforces Round 96 (Rated for Div. 2) 题解
    2019-2020 ICPC Northwestern European Regional Programming Contest (NWERC 2019)
    2018-2019 ICPC Northwestern European Regional Programming Contest (NWERC 2018)
  • 原文地址:https://www.cnblogs.com/5315hejialei/p/6106929.html
Copyright © 2011-2022 走看看