以下内容是阅读了"蓝云"的博客后,博客地址:http://www.cnblogs.com/kunhu/p/3607376.html
随手做笔记:
#include <stdio.h>
#include <unistd.h>
int main()
{
int i;
pid_t pid;
for(i = 0;i < 3; i++)
{
pid = fork();
if(pid == 0)
printf("son\n");
else
printf("farther\n");
}
return 0;
}
问本程序执行之后printf的打印次数以及创建子进程的个数?
以下是本程序执行的结果:
farther
son
farther
farther
farther
farther
son
farther
son
son
farther
son
son
son
总共是14次
总结一下规律,对于这种N次循环的情况,执行printf函数的次数为 2 * (1+2+4+……+2N-1) 次,也就是C(printf) = 2N+1 -2 = 2 * (2N - 1),创建的子进程数为 1+2+4+……+2N-1 个.