- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
实验二创建进程实验2.1预备知识2.2实验内容教学重点和难点掌握fork()、exec族函数、wait()系统调用的基本用法通过实验学会自己编程创建进程的方法创建进程fork()一个进程调用了fork以后,系统会创建一个子进程。这个子进程和父进程之间除了进程ID号不同外,其他的都一样。就象进程克隆(clone)自己一样。fork()使用格式:#includesys/types.h/*提供类型pid_t的定义*/#includeunistd.h函数原形:pid_tfork(void);fork()当一个程序中调用fork函数后,内核会完成如下工作:内核系统分配新的内存块和内核数据结构复制原来的进程到新的进程向运行进程集添加新的进程将进程号返回给两个进程fork()当然创建两个一模一样的进程是没有意义的。为了区分父进程和子进程,我们必须跟踪fork的返回值。当fork调用失败的时候(内存不足或者是用户的最大进程数已到)fork返回-1;否则fork的返回值有重要的作用。对于父进程fork返回子进程的ID,而对于子进程fork返回0。我们就是根据这个返回值来区分父子进程的。一旦子进程被创建,父子进程一起从fork处继续执行。举例:#includesys/types.h#includeunistd.hmain(){pid_tid=0;printf(pidbeforefork():%d\n,getpid());id=fork();if(id==-1)printf(“ForkError\n”);elseif(id==0)printf(“thisischildprocess,pid:%d\n,getpid());elseprintf(“thisisparentprocess,pid:%d\n,getpid());}exec族函数exec族函数的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容。换句话说,就是放弃执行进程内原有代码,转去执行一个指定的可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。exec系统调用有六种不同的使用格式,但在核心中只对应一个调用入口。它们有不同的调用格式和调用参数。这六种调用格式分别为:exec族函数#includeunistd.hintexecl(constchar*path,constchar*arg0,...,constchar*argn,(char*)0);intexecv(constchar*path,char*const*argv);intexecle(constchar*path,constchar*arg0,...,constchar*argn,(char*0),constchar*envp[]);intexecve(constchar*path,char*const*argv,char*const*envp);intexeclp(constchar*file,constchar*arg0,...,constchar*argn,(char*)0);intexecvp(constchar*file,char*const*argv);exec族函数说明:参数path指出一个可执行目标文件的路径名;参数file指出可执行目标文件的文件名。arg0作为约定同path一样指出目标文件的路径名;参数arg1到argn分别是该目标文件执行时所带的命令行参数;参数argv是一个字符串指针数组,由它指出该目标程序使用的命令行参数表,按约定第一个字符指针指向与path或file相同的字符串;最后一个指针指向一个空字符串,其余的指向该程序执行时所带的命令行参数;参数envp同argv一样也是一个字符指针数组,由它指出该目标程序执行时的进程环境,它也以一个空指针结束。exec族函数exec的六种格式在以下三点上有所不同:path是一个目标文件的完整路径名,而file是目标文件名,它是可以通过环境变量PATH来有哪些信誉好的足球投注网站的;由path或file指定的目标文件的命令行参数是完整的参数列表或是通过一指针数组argv来给出的;环境变量是系统自动传递或者通过envp来给出的。exec族函数下图说明了exec系统调用的六种不同格式对以上三点的支持。系统
您可能关注的文档
- 平面向量的数量积的坐标表示2012.5.18-19.ppt
- 第2讲(事件的概率与古典概率、几何概率).ppt
- 1.4随机事件的概率-统计古典.ppt
- 概率论第一章-随机事件及其概率Ch1.3-古典概型与几何概型.ppt
- 1随机事件及其运算、概率的统计定义、古典概型.ppt
- 第二节-命题及其关系、充分条件与必要条件.pptx
- 必修二历史第六单元.ppt
- 第五节人类对细菌和真菌的利用.ppt
- 第四章第1节光的直线传播-第二课时.ppt
- 化学-必修1第三章.ppt
- 江苏省连云港市赣榆区2023-2024学年九年级上学期期中数学试题.docx
- 江苏省淮安市周恩来红军中学2022-2023学年八年级上学期期末数学试题.docx
- 江苏省淮安市清江浦区三校2023-2024学年七年级上学期期中调研数学试题.docx
- 江苏省淮安市涟水县麻垛中学2022-2023学年九年级上学期12月月考数学试题.docx
- 江苏省连云港市2022-2023学年八年级上学期期末数学试题.docx
- 江苏省淮安市清江浦区浦东实验中学2023-2024学年八年级上学期期中数学试题.docx
- 江苏省连云港赣榆区乡镇五校联考2023-2024学年九年级上学期第一次月考数学试题.docx
- 江苏省连云港市灌南县新知双语学校2022-2023学年九年级上学期第一次月考数学试题.docx
- 江苏省连云港市灌南县2023-2024学年八年级上学期12月月考数学试题.docx
- 江苏省淮安市周恩来红军中学2023-2024学年八年级上学期11月月考数学试题.docx
文档评论(0)