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