您的位置:首页 > 其它

fork求进程数相关问题总结

2010-09-29 09:59 337 查看
题1. 求子进程数,不包含主进程

]#include <unistd.h>
int main()
{
fork();
fork() && fork() || fork();
fork();
return 0;
}


栈式方法

1, 2, 3, 5

2, 3, 5

4, 5

4, 5

4, 5

4, 5

5

5

5

5

共19个子进程

题2. 求输出行数

]#include <unistd.h>
#include <sys/types.h>
#include <stdio.h>

int main()
{
int i;
for (i = 0; i < 5; i++){
fork();
printf("%d/n", getpid());
fflush(stdout);
}
return 0;
}


按循环次数分析。

i=0,2个子进程,输出2行

i=1,4个子进程,输出4行

。。。

i=4,2^5个子进程,输出2^5行

总的输出行数:2+2^2+...+2^5 = 2(2^5 - 1) = 62行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: