第八周实践

一、任务

在虚拟机中编译运行代码

二、运行结果

1、exec1

代码:第八周实践_第1张图片

实现的功能

通过execvp函数,从环境变量所指目录中寻找ls文件并执行,然后将arglist数组传给要执行的ls文件。
第八周实践_第2张图片

2、exec2

代码:第八周实践_第3张图片

实现的功能

与exec1输出的结果一致,只是传递的参数不同
第八周实践_第4张图片

3、exec3

代码:第八周实践_第5张图片

实现的功能

这个代码指定了环境变量,然后依然执行了ls -l指令,成功后没有返回,所以最后一句话不会输出。运行结果同exec1.

4、forkdemo1

实现的功能:这个代码先是打印进程pid,然后调用fork函数生成子进程,休眠一秒后再次打印进程id,这时父进程打印子进程pid,子进程返回0.

5、forkdemo2

实现的功能:这个代码调用两次fork,一共产生四个子进程,所以会打印四个after输出。

第八周实践_第6张图片

6、forkdemo4

实现的功能:先打印进程pid,然后fork创建子进程,父进程返回子进程pid,所以输出parent一句,休眠十秒;子进程返回0,所以输出child与之后一句。

第八周实践_第7张图片

7、psh1

第八周实践_第8张图片

实现的功能:这个代码就相当于你输入要执行的指令,回车表示输入结束,然后输入的每个参数对应到函数中,再调用对应的指令。

8、testbuf1

第八周实践_第9张图片

实现的功能:效果是先输出hello,然后换行。之后不退出。

9、waitdemo1

第八周实践_第10张图片

实现的功能:如果有子进程,则终止子进程,成功返回子进程pid。

10、waitdemo1

第八周实践_第11张图片

实现的功能:每隔一秒输出一个hello,输出五个hello然后退出

三、遇到的问题

开始在执行testbuf函数的时候不知道如何退出。后面查资料得知按ctrl+c即可退出

四、参考资料

  • 20125202闫佳歆同学的博客http://www.cnblogs.com/20135202yjx/p/5003653.html。

你可能感兴趣的:(第八周实践)