我们在C中有这个代码,它会创建子进程。
问题是创建了多少个进程? 我计算了8个流程,我的朋友12.谁是对的?
#include <stdio.h>
#include <unistd.h>
int main() {
int i;
for ( i = 0 ; i < 4 ; i++ ) {
fork();
}
return 0;
}
我的假设是堆栈从父级复制到子级,并且每个子级都在父级代码停止的同一位恢复父级代码。
答案 0 :(得分:0)
由于fork()
在子进程中返回0
,通过为fork()
创建的每个子进程打印一行,您只需计算创建的子进程数: / p>
for (i = 0; i < 4; i++) {
if (!fork()) {
printf("child created\n");
fflush(stdout);
}
}