第五十七章、linux中除了fork外还能用什么函式建立程式
报价宝综合消息第五十七章、linux中除了fork外还能用什么函式建立程式
上一章我们用fork函式建立了程序,也了解了程序的一些知识
这一章呢我们来了解下另一个能够建立程序的函式:vfork函式。
vfork函式的作用基本和fork函式类似,呼叫流程和返回值与fork函式完全相同。
那么fork和vfork有什么区别呢?
我们来看一下下面这几段程式:
图一
图二
图三
图四
我们可以从中看到:
1、 vfork建立的子程序会先执行,可以说子程序和附近陈的结果是确定的,fork先执行那个不能确定
2、 vfork建立的程序中父程序和子程序共享了全部变数(k)和区域性变数(i)的资料
3、 因为vfork是子程序先执行,父程序挂起,可以看到直至子程序呼叫exec或则exit之后父子程序的执行次序不再有限制,因此,如果在子程序呼叫exec或exit之前需要父程序的进一步活动,就会造成死锁
4、 可以看到在不呼叫exec或exit时,区域性变数在父程序中会出现不可预料的结果
5、 在子程序呼叫了exec或exit后,子程序后面的程式码并没有执行