第八周实践

一、任务

在虚拟机中编译运行代码

二、运行结果

1、exec1

代码:

实现的功能

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

2、exec2

代码:

实现的功能

与exec1输出的结果一致,只是传递的参数不同

3、exec3

代码:

实现的功能

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

4、forkdemo1

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

5、forkdemo2

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

6、forkdemo4

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

7、psh1

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

8、testbuf1

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

9、waitdemo1

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

10、waitdemo1

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

三、遇到的问题

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

四、参考资料

  • 20125202闫佳歆同学的博客http://www.cnblogs.com/20135202yjx/p/5003653.html。
原文地址:https://www.cnblogs.com/5320zhq/p/5005363.html