浅析fork函数
fork函数的作用是:进程(父进程)可通过fork函数创建一个新的运行的子进程。
新创建的子进程几乎不完全与父进程相同。
可结合以下例子来理解(见《深入理解计算机系统》一书家庭作业8.11)
#include<unistd.h> #include<stdio.h> #include<stdlib.h> int main() { int i; for(i=0;i<2;i++) fork(); printf("hello\n"); exit(0); }
其程序的流程图为:


运行结果为4个“hello”。
再看8.21
#include <stdio.h> #include <unistd.h> int main(){ if(fork()==0){ printf("a"); fflush(stdout); exit(0); } else { printf("b"); waitpid(-1,NULL,0); } printf("c"); fflush(stdout); exit(0); }
其程序的流程图为:

waitpid(-1,NULL,0)在程序中的作用为等待子进程结束。

其结果为:abc 或bac
浙公网安备 33010602011771号