一、fork函数与vfork的相同点: 1、头文件相同: 2、函数原型相同:(都无参数,且返回值相同) 3、函数功能相同: 都是从一个已存在的进程中创建一个新的进程,新进程为子进程,原进程为父进程 4、返回值相同: 成功:子进程返回0,父进程返回子进程ID 失败:返回-1,使用perror打印错误信息 二、不同点 1、vfork保证子程序先运行,在它调用exit之后,父进程才可能被调度运行,而fork函数中,父进程和子进程是的运行先后顺序是不确定,随机的,统一由cpu调度。 2、vfork和fork一样都创建一个子进程,但它并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exit,于是也就不访问该地址空间,相反,在子进程中调用exit之前,它在父进程的地址空间中运行(fork中父子进程地址空间相互独立),在exit之后子进程会有自己的进程空间。