细究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()的主要内容,如果未能解决你的问题,请参考以下文章

fork和vfork,return和exit的理解

Linux中fork,vfork和clone详解(区别与联系)

fork???vfork??????????????????

(疑问)进程控制---vfork 函数

fork和vfork

fork与vfork的区别与联系