信息安全系统设计基础第十二周学习总结

信息安全系统设计基础第十二周学习总结

  • environ.c:
    信息安全系统设计基础第十二周学习总结_第1张图片

先通过getenv函数获取环境变量PATH的路径并显示;然后使用函数setenv改变PATH,然后再次显示:

  • environvar.c:
    信息安全系统设计基础第十二周学习总结_第2张图片
    信息安全系统设计基础第十二周学习总结_第3张图片
    信息安全系统设计基础第十二周学习总结_第4张图片

  • exec1.c:
    信息安全系统设计基础第十二周学习总结_第5张图片

通过execvp函数,从环境变量所指目录中寻找ls文件并执行,然后将arglist数组传给要执行的ls文件。

信息安全系统设计基础第十二周学习总结_第6张图片

信息安全系统设计基础第十二周学习总结_第7张图片

执行完后直接结束,不会有结尾那一句输出。

  • exec2.c:
    信息安全系统设计基础第十二周学习总结_第8张图片

通过execvp寻找名为arglist数组第一个元素的文件,也是ls,然后把数组传递给它,进行执行。
信息安全系统设计基础第十二周学习总结_第9张图片

信息安全系统设计基础第十二周学习总结_第10张图片

也还是没有结尾的输出语句

  • exec3.c:
    信息安全系统设计基础第十二周学习总结_第11张图片

使用execlp函数寻找ls文件,然后将后面的两个参数作为该文件的参数,最后以空指针NULL结束
信息安全系统设计基础第十二周学习总结_第12张图片

信息安全系统设计基础第十二周学习总结_第13张图片

结尾仍没有输出语句

  • testmf.c:
    信息安全系统设计基础第十二周学习总结_第14张图片

使用mkfifo函数按照/tmp/mtfifo建立特殊的fifo文件,参数0777为该文件的权限。如果成功,则显示FIFO已经创建。
FIFO可以很好地解决在无关进程间数据交换的要求。FIFO类型文件同时具有管道的特性,在数据读出时,FIFO管道中同时清除数据。

  • consumer.c+producer.c:
    信息安全系统设计基础第十二周学习总结_第15张图片

信息安全系统设计基础第十二周学习总结_第16张图片

根据操作系统所学知识,这应该是生产者和消费者两个进程相互通信的过程,所以需要打开两个终端分别运行。他们先创建一个FIFO文件,然后再进行进程通信读取数据。

函数memset作用为,将buffer前sizeof(buffer)个字节用0替换,并且返回buffer。
最终消费者进程还会返回读取的总字节数,为TEN_MEG=1024102410=10485760。

  • forkdemo1.c:
    信息安全系统设计基础第十二周学习总结_第17张图片

先获取当前进程号,再生成一个子进程,父进程返回子进程标记,子进程返回0.

  • forkdemo2.c:
    信息安全系统设计基础第十二周学习总结_第18张图片

父进程先获取当前进程号,然后生成三个子进程,分别返回自己进程号
信息安全系统设计基础第十二周学习总结_第19张图片

  • forkdemo3.c:

信息安全系统设计基础第十二周学习总结_第20张图片

先输出父进程进程号,然后生成子进程,然后如果是父进程,则声明身份指出子进程的进程号;如果是子进程,则声明自己身份,给出自己进程号。

  • forkdemo4.c:
    信息安全系统设计基础第十二周学习总结_第21张图片
    先输出父进程进程号,然后生成子进程,然后如果是父进程,则声明身份并指出子进程的进程号;如果是子进程,则声明自己身份,给出自己进程号和父进程进程号。

  • forkgdb.c:
    信息安全系统设计基础第十二周学习总结_第22张图片

信息安全系统设计基础第十二周学习总结_第23张图片

信息安全系统设计基础第十二周学习总结_第24张图片

信息安全系统设计基础第十二周学习总结_第25张图片

通过父进程和子进程分别对一个正常变量li,全局变量gi和静态变量si进程叠加,从而看出进程运行的先后顺序

  • psh1.c:
    信息安全系统设计基础第十二周学习总结_第26张图片

程序预设了20个参数的位置,由操作者输入,作为指令进行执行,如果操作者输入已经完成,对着空的位置直接按回车即可。

  • psh2.c:
    信息安全系统设计基础第十二周学习总结_第27张图片

  • testbuf1.c:
    信息安全系统设计基础第十二周学习总结_第28张图片

显示hello,并且清除缓冲区,永远循环

  • testbuf2.c:
    信息安全系统设计基础第十二周学习总结_第29张图片

信息安全系统设计基础第十二周学习总结_第30张图片

  • testbuf3.c:
    信息安全系统设计基础第十二周学习总结_第31张图片

以标准输出作为文件指针输出1234,并且以标准错误文件指针输出abcd

  • testpid.c:
    信息安全系统设计基础第十二周学习总结_第32张图片

显示当前进程及其父进程

  • testpp.c:
    信息安全系统设计基础第十二周学习总结_第33张图片

  • testsystem.c:
    信息安全系统设计基础第十二周学习总结_第34张图片

信息安全系统设计基础第十二周学习总结_第35张图片

将输入参数作为系统指令执行

  • waitdemo1.c:
    信息安全系统设计基础第十二周学习总结_第36张图片
    信息安全系统设计基础第十二周学习总结_第37张图片

先显示父进程,然后等待子进程沉睡4秒,然后由父进程显示子进程的进程号。
信息安全系统设计基础第十二周学习总结_第38张图片

  • waitdemo2.c:
    信息安全系统设计基础第十二周学习总结_第39张图片
    信息安全系统设计基础第十二周学习总结_第40张图片

除了与waitdemo1一样的方式等待了子进程休眠10秒以外,还返回了三个参数,分别为27,0,0.
信息安全系统设计基础第十二周学习总结_第41张图片

参考资料:百度百科

你可能感兴趣的:(信息安全系统设计基础第十二周学习总结)