首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

一个fork的有关问题

2012-03-08 
一个fork的问题pid_t pid1, pid2, pid3pid1 fork()pid2 fork()pid3 fork()printf(%d, %d, %d\n

一个fork的问题
pid_t pid1, pid2, pid3;
pid1 = fork();
pid2 = fork();
pid3 = fork();
printf("%d, %d, %d\n", pid1, pid2, pid3);

假设第一次打印:1001,102,1003
请问一共打印多少次?每一次打印的内容是多少?

[解决办法]
1次fork就会由一个进程变为2个,这样一共会产生8个进程,一共会打印8次,fork对父子进程的返回值不一样,这个需要变化下
[解决办法]
pid1 = fork();
pid2 = fork();
pid3 = fork();

这个问题是递归的,这里要产生N多个进程,简单算一下:

父进程产生pid1,pid1再fork,fork的再fork,pid1再fork。
父进程产生pid2,pid2再fork。
父进程产生pid3。

一共有1+1+1+1+1+1+1+1=8个

热点排行