天下无伤 发表于 2013-4-11 14:37:18

fork()和vfork()的区别

在linux中创建一个新的进程可以使用fork()和vfork()两个函数,在使用这两个函数时应注意以下问题:

1、fork()和vfork()函数使用一次就创建一个进程,在使用if语句判断时要格外小心

2、fork()继承了完全继承了父进程的代码区,复制了父进程的数据段和堆栈段,也就是说由fork()创建出来的子进程是和父进程共享代码区的,而数据段和代码段是不共享的;而vfork()完全继承了父进程的代码区、数据段和堆栈段,所以由vfork()创建出来的子进程是和父进程共享代码、数据和堆栈的

3、由fork()创建的子进程与父进程执行的先后顺序不确定,由vfork()创建的子进程要先于父进程执行。
页: [1]
查看完整版本: fork()和vfork()的区别