#include <unistd.h>
#include <stdio.h>
int main(void)
{
int i=0;
printf("i son/pa ppid pid fpid
");
//ppid指当前进程的父进程pid
//pid指当前进程的pid,
//fpid指fork返回给当前进程的值
for(i=0;i<4;i++){
pid_t fpid=fork();//此句执行成功后,就有两个进程(父进程和子进程)
if(fpid==0) //子进程执行if语句
{
printf("%d child %4d %4d %4d
",i,getppid(),getpid(),fpid);
break;//父进程每产生一个子进程,子进程就跳出循环,这是关键部分,一定要理解
}
else//父进程执行else语句
{
printf("%d parent %4d %4d %4d
",i,getppid(),getpid(),fpid);
continue;//父进程继续执行循环体,产生子进程
}
}
return 0;
}
运行如图所示:
