进程创建实验报告.doc

进程创建实验报告.doc

ID:56775563

大小:261.50 KB

页数:5页

时间:2020-07-08

进程创建实验报告.doc_第1页
进程创建实验报告.doc_第2页
进程创建实验报告.doc_第3页
进程创建实验报告.doc_第4页
进程创建实验报告.doc_第5页
资源描述:

《进程创建实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验二进程的创建一、实验目的熟悉进程的创建过程,了解系统调用函数fork()和execl()。二、实验内容1、阅读实例代码fork1,并编辑、编译、运行,记录程序的运行结果,尝试给出合理的解释,查阅有关资料,掌握系统调用fork()的用法,返回值的意义。2、阅读实例代码fork2,并编辑、编译、运行,记录程序的运行结果,尝试给出合理的解释,查阅有关资料,掌握在程序中运行一个操作系统命令和运行一个程序的方法。3、修改fork2,使之能把运行的命令和程序作为参数传给fork2。三、设计思想1、程序框架pid=-1pid>0pid=02、用到的文件系统调用函数fork()和execl(

2、)四、调试过程1、测试数据设计(1)fork1命名程序1:编写程序1:编译程序1:运行程序1:(2)fork2编写程序2:运行程序2:(3)修改fork2编写修改程序2:修改后的运行结果:2、测试结果分析(1)对于程序1:因为系统调用fork()函数是一次调用两次返回值,而且先生成子进程还是父进程是不确定的,所以第一次执行生成子进程的时候返回的pid=0,判断pid!=-1,所以输出了I’mthechild.I’mtheparent.第二次,执行父进程的时候,返回的是子进程的进程号pid>0,即pid的值仍然不为-1,所以又输出了一次I’mthechild.I’mtheparen

3、t。(2)对于程序2:第一次调用fork()函数时,由于执行的是子进程还是父进程是随机的,所以第一次对父进程返回的是子进程的进程号(大于0),即pid>0,所以输出I’mtheparent.Programend.当第二次执行子进程时返回值是0,即pid=0,所以输出I’mthechild.并调用了execl()函数,查看了指定路径中的文件。(3)对于修改后的程序2:改变了系统调用execl()中参数的文件路径和可执行文件名,即可在程序fork2.c中执行另一个程序wyf.c(但要注意可执行文件名是123)。五、总结1、调试过程中遇到的主要问题及解决过程运行程序2的时候如果不加ex

4、ecl()函数的头文件会提示警告,而且因为execl()的第三个参数是字符型指针数组,所以要强制转换成指针型,即写成(char*)0才行。2、体会和收获通过这次实验我进一步熟悉了linux系统,也学会了进程的创建过程和返回值的意义。同时学会了一个新的系统调用函数execl()及其头文件和参数类型。也学会了在编写完程序之后,不仅可以用:wq保存并退出,也可以用快捷键shift+zz。六、附录:源程序代码(另附)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。