Linux学习日记--fork()函数笔记

以下内容是阅读了"蓝云"的博客后,博客地址:http://www.cnblogs.com/kunhu/p/3607376.html

随手做笔记:

#include 
#include 

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 个.

你可能感兴趣的:(fork打印次数,Linux学习日记)