首页 > 代码库 > Linux下利用fork()创建子进程并使父进程等待子进程结束
Linux下利用fork()创建子进程并使父进程等待子进程结束
int status;
pid_t t = fork();
if(t){
waitpid(t, &status, 0);
}else{
system("vi temp.txt");
exit(0);
}
//父进程和子进程均执行完毕后继续执行下去
分析过程:
if 和 else 还是选择分支。
主要的原因是,fork() 函数调用一次,返回两次。两次返回的区别是:子进程的返回值是0,父进程返回值为新子进程的进程ID。返回后,父进程执行waitpid(t, &status, 0)等待子进程结束,而子进程进入另一个分支执行system("vi temp.txt");exit(0);,父子间并不冲突,可以形容这段代码父进程与子进程都执行了一次判断。
主要的原因是,fork() 函数调用一次,返回两次。两次返回的区别是:子进程的返回值是0,父进程返回值为新子进程的进程ID。返回后,父进程执行waitpid(t, &status, 0)等待子进程结束,而子进程进入另一个分支执行system("vi temp.txt");exit(0);,父子间并不冲突,可以形容这段代码父进程与子进程都执行了一次判断。
Linux下利用fork()创建子进程并使父进程等待子进程结束
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。