Vfork 和fork区别
本帖最后由 vdsvs 于 2011-04-28 23:32 编辑
刚才看了相关资料,说vfork创建的父子进程是共享数据段的,而fork创建的父子进程数据段是拷贝不是共享,那意味着vfork创建后可以共享一些全局变量,那vfork 创建的父子进程之间的通信就不用什么管道、共享等方式了吧,不知道说的对不???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用vfork创建进程的时候,不会复制父进程的相关资源,父子进程共享相同的地址空间,所以子进程对虚拟内存空间的内存修改实际上是修改父进程的虚拟内存空间。
vfork创建子进程后,将阻塞父进程直到子进程调用exec或者_exit退出。
楼主可以自己写个小程序验证一下
如LS所说,vfork()后父子进程共享数据空间,子进程修改父进程的变量后父进程可以看到,但是父进程会阻塞直到子进程exec()或者_exit()后。
本帖最后由 vdsvs 于 2011-05-02 21:41 编辑
谢谢 ,终于明白vfork了