细究fork()和vfork()

在linux系统下,对于程序执行的过程中,我们都会想到进程。而创建进程通常使用fork函数,当然还有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进程的子进程。

原文地址:https://www.cnblogs.com/single-dont/p/10504779.html