当前位置: 技术问答>linux和unix
一个fork的问题
来源: 互联网 发布时间:2017-01-12
本文导语: pid_t pid1, pid2, pid3; pid1 = fork(); pid2 = fork(); pid3 = fork(); printf("%d, %d, %dn", pid1, pid2, pid3); 假设第一次打印:1001,102,1003 请问一共打印多少次?每一次打印的内容是多少? | pid1 = fork(); pid...
pid_t pid1, pid2, pid3;
pid1 = fork();
pid2 = fork();
pid3 = fork();
printf("%d, %d, %dn", pid1, pid2, pid3);
假设第一次打印:1001,102,1003
请问一共打印多少次?每一次打印的内容是多少?
pid1 = fork();
pid2 = fork();
pid3 = fork();
printf("%d, %d, %dn", pid1, pid2, pid3);
假设第一次打印:1001,102,1003
请问一共打印多少次?每一次打印的内容是多少?
|
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个
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个
|
1次fork就会由一个进程变为2个,这样一共会产生8个进程,一共会打印8次,fork对父子进程的返回值不一样,这个需要变化下