fork()函数是Linux系统中唯一可以创建一个新进程的方法。其新创建的进程称为子进程,原进程称为父进程。子进程将从父进程处继承了整个父进程的地址空间(包括进程上下文、代码段、进程堆栈、内存信息、打开的文件描述符、进程优先级、进程组号等)。
由于fork()函数所产生的子进程是完全复制的父进程,因此它们会运行同一个程序,父进程的代码从fork()函数的返回值开始分别在两个地址空间中同时运行,从而时两个进程分别获得其各自的fork()函数返回值,父进程返回值为子进程的进程号,子进程的返回值为0,所以可以通过判断fork()函数的返回值来确定该进程为父进程还是子进程。
fork()函数的语法如下:
头文件:#include<sys/types.h> /*定义类型pid_t*/
#include<unisted.h>
函数原型: pid_t fork()
返回值:0 子进程;大于0的整数(子进程id,父进程);-1 出错
fork()函数的实例代码如下