信息安全系统设计基础第十二周学习总结
- 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

























