除了fork外还能用什么函数创建进程

除了fork外还能用什么函数创建进程fork先运行那个不能确定2、vfork创建的进程中父进程和子进程共享了全部变量的数据3、因为vfork是子进程先运行,父进程挂起,可以看到直至

上一章我们用fork函数创建了进程,也了解了进程的一些知识

这一章呢我们来了解下另一个能够创建进程的函数:vfork函数。

vfork函数的作用基本和fork函数类似,调用流程和返回值与fork函数完全相同。

那么fork和vfork有什么区别呢?

我们来看一下下面这几段程序:

除了fork外还能用什么函数创建进程

图一

除了fork外还能用什么函数创建进程

图二

除了fork外还能用什么函数创建进程

图三

除了fork外还能用什么函数创建进程

图四

我们可以从中看到:

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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注