
认识fork()头文件<unistd.h>提供的fork()函数用于从已有的原进程创建一个新的子进程,而原进程在关系式称为父进程
fork()的返回值12#include <unistd.h>pid_t id = fork();
父子进程中fork()函数的返回值(此处用变量id储存)是不同的:
父进程里id的值为子进程的PID,其值>0;子进程里id值固定为0
id > 0 父进程
id == 0 子进程
id < 0 fork()失败
分流
利用父子进程中fork()返回值的不同,可以用if...else...进行分流,让父子进程执行不同的代码
fork()的过程进程调用fork,当控制转移到内核中的fork代码后,内核做
分配新的内存块和内核数据结构给子进程
将父进程部分数据结构内容拷贝至子进程
添加子进程到系统进程列表当中
fork返回,开始调度器调度
当一个进程调用fork之后,就有一对二进制代码相同的父子进程。而且它们都运行到相同的地方。但每个进程都可以独立地继续运行代码,并按代码分流至不同的代码段
但这两个进程谁先执行 ...