#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
int pid,k;
for(k=0;k<11;k++){
pid=fork();
if(pid>0){
printf("第%d代进程,id号为%d\n",k,getpid());
break;//父进程不再创建子进程
}
//else 子进程仍然创建子进程
}
return 0;
}
// 由父进程生成子进程,子进程生成孙进程,共生成10代
编译执行,输出为:
[xxx@localhost c++]$ ./test
第0代进程,id号为19536
第1代进程,id号为19537
[xxx@localhost c++]$ 第2代进程,id号为19538
第3代进程,id号为19539
第4代进程,id号为19540
第5代进程,id号为19541
第6代进程,id号为19542
第7代进程,id号为19543
第8代进程,id号为19544
第9代进程,id号为19545
第10代进程,id号为19546
按结果所示, 输出正确