fork函数
头文件
#include <unistd.h>
函数原型
pid_t fork(void);
返回值
- 成功:正整数
- 失败:-1
fork函数特征
fork函数执行之后会返回两次,在初始进程中执行fork函数后,会创建一个新的进程,而且这个新的进程会几乎复制旧进程的所有东西,为什么是几乎呢?在执行fork函数之前操作系统只有一个进程,那fork之前的代码就只会执行一遍。调用fork函数之后,产生新进程,会把fork函数之后的代码复制一遍,所以fork之后的代码才会执行两次。
- 在老的进程中执行成功返回新进程的pid,子进程执行成功返回值是0
举例
#include <unistd.h>
#include <stdio.h>
int main()
{
pid_t i;
printf("before fork!\r\n");
i = fork();
printf("after fork i = %d\n",i);
return 0;
}