首先上代码:
#include <stdio.h>
#include <unistd.h>
int main()
{
pid_t p1, p2;
p1 = fork();
p2 = fork();
printf("pid1:%d, pid2:%d\n", p1, p2);
}
要求如下:
已知从这个程序执行到这个程序的所有进程结束这个时间段内,没有其它新进程执行。
1、请说出执行这个程序后,将一共运行几个进程。
2、如果其中一个进程的输出结果是“pid1:1001, pid2:1002”,写出其他进程的输出结果(不考虑进程执行顺序)。
明显这道题的目的是考察linux下fork的执行机制。下面我们通过分析这个题目,谈谈linux下fork的运行机制。
这里先列出一些必要的预备知识,对linux下进程机制比较熟悉的朋友可以略过。