一、任务
在虚拟机中编译运行代码
二、运行结果
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。