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

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

  • environ.c:

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

  • environvar.c:


  • exec1.c:

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

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

  • exec2.c:

通过execvp寻找名为arglist数组第一个元素的文件,也是ls,然后把数组传递给它,进行执行。

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

  • exec3.c:

使用execlp函数寻找ls文件,然后将后面的两个参数作为该文件的参数,最后以空指针NULL结束

结尾仍没有输出语句

  • testmf.c:

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

  • consumer.c+producer.c:

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

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

  • forkdemo1.c:

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

  • forkdemo2.c:

父进程先获取当前进程号,然后生成三个子进程,分别返回自己进程号

  • forkdemo3.c:

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

  • forkdemo4.c:

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

  • forkgdb.c:

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

  • psh1.c:

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

  • psh2.c:

  • testbuf1.c:

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

  • testbuf2.c:

  • testbuf3.c:

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

  • testpid.c:

显示当前进程及其父进程

  • testpp.c:

  • testsystem.c:

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

  • waitdemo1.c:

先显示父进程,然后等待子进程沉睡4秒,然后由父进程显示子进程的进程号。

  • waitdemo2.c:

除了与waitdemo1一样的方式等待了子进程休眠10秒以外,还返回了三个参数,分别为27,0,0.

参考资料:百度百科

原文地址:https://www.cnblogs.com/20135319zl/p/5005202.html