创建了多少个子进程?

How many child processes are created?

for(i=0;i<5;i++)
for(i=0;i<5;i++) 
fork();

以上代码创建了多少个子进程?


我的尝试:

我先解决了内循环,一共得到了32个进程,其中31个子进程,1个父进程。

然后,我进行了循环5次的外循环,从而产生了31 * 5 = 155个子进程。


我做对了吗?

 for(int i=0; i<n; i++)
     fork();

对于这种情况,创建的进程总数总是 2^n - 1,因为 fork() 将在 n 时间被调用。

for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
     fork();

对于这个双 for-loopfork() 被调用 n^2 次,因此创建的进程总数将为

2^(n^2) - 1

对于此类问题,重要的是计算您的 fork() 被调用的次数。

对于您的情况 n=5,因此子进程总数将为 2^25 - 1