fork与vfork区别及用exit于return返回时的区别

fork()与vfork()区别:

在北川羌族等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设、外贸营销网站建设 网站设计制作按需网站策划,公司网站建设,企业网站建设,品牌网站建设,营销型网站,成都外贸网站建设公司,北川羌族网站建设费用合理。

1.fork()父子进程的执行次序不确定,它们的调度顺序由调度器说了算。而vfork()保证子程序先运行,在调用exit或者exec前父子进程数据共享,在子进程调用exit或exec退出后父进程才能被调度运行。

2.fork()子进程会拷贝父进程的数据段,而vfork()父子进程共享数据段。

return与exit返回时的区别:

首先结束子进程的调用需要用exit(),因没有修改函数栈,若在vfork中return,那就意味在main函数中return,这是因为父子进程共享函数栈。由于main函数也是被启动例程调用的,因此main函数return后就返回到启动例程中,而main函数return后还会调一些exit()相似函数。

因return会释放局部变量,并弹栈,回到上级函数执行,而exit(它不是系统调用,时glibc对系统调用_exit()的封装)直接退掉。


当前标题:fork与vfork区别及用exit于return返回时的区别
当前链接:http://myzitong.com/article/gieehg.html