上一章我们用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后,子进程后面的代码并没有运行
今天的文章除了fork外还能用什么函数创建进程分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/8218.html