Linux实验2--创建进程.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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系统调用的六种不同格式对以上三点的支持。系统

您可能关注的文档

文档评论(0)

iris + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档