文章目录
1 fork函数介绍
fork函数:
头文件:
#include <unistd.h>
函数原型:
pid_t fork(void);
返回值:
- 成功 :0或其他正整数
- 失败:-1
fork函数特性:
- 执行fork函数之后,fork函数会返回两次
- 在旧进程中返回时,返回值为子进程的pid
- 在新进程返回时,返回值为0
fork函数要点总结:
- 在执行fork函数之前,操作系统只有一个进程,fork函数之前的代码只会被执行一次。
- 在执行fork函数之后,操作系统有两个几乎一样的进程,fork函数之后的代码会被执行两次。
示例代码:
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
pid_t result;
printf("This is a fork demo!\n\n");
/*调用 fork()函数*/
result = fork();
/*通过 result 的值来判断 fork()函数的返回情况,首先进行出错处理*/
if(result == -1) {
printf("Fork error\n");
}
/*返回值为 0 代表子进程*/
else if (result == 0) {
printf("The returned value is %d, In child process!! My PID is %d\n\n", result, getpid());
}
/*返回值大于 0 代表父进程*/
else {
printf("The returned value is %d, In father process!! My PID is %d\n\n", result, getpid());
}
return result;
}
参考资料: