细究fork()和vfork()
Posted single-dont
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了细究fork()和vfork()相关的知识,希望对你有一定的参考价值。
在linux系统下,对于程序执行的过程中,我们都会想到进程。而创建进程通常使用fork函数,当然还有vfork函数,在一定程度上我们也可以理解vfork也是在调用vfork函数。
今天在这,我将分享一下我的学习心得:关于fork()和vfork()
fork()
1.定义:表示进程A创建进程B。在创建的过程中,进程B拷贝了一份进程A的所有资源。(进程A:父进程;进程B:子进程)
2.返回值可以有三种:0(表示子进程返回值为0)、-1(表示父进程创建子进程失败)、>0(表示父进程返回值为子进程的ID号)
vfork()
1.定义:表示进程A创建进程B。在创建的过程中,进程B共享进程A所分配的进程资源。(进程A:父进程;进程B:子进程)
2.返回值:0(表示子进程返回值为0)、-1(表示父进程创建子进程失败)、>0(表示父进程返回值为子进程的ID号)
僵尸进程:一个子进程结束后,父进程没有及时释放子进程所占有的资源,此时称子进程为僵尸进程。
孤儿进程:一个子进程的父进程先于子进程结束。子进程将由init进程收养,成为init进程的子进程。
以上是关于细究fork()和vfork()的主要内容,如果未能解决你的问题,请参考以下文章
Linux中fork,vfork和clone详解(区别与联系)