我想知道这段代码中从 fork() 创建了多少个进程,我做了一些跟踪,结果以 20 个进程结束,但我无法确定,你能帮我吗? 谢谢。
#include <stdio.h>
#include <sys/types.h>
int main()
{
**
fork();
fork();
if( fork() > 0)
{
fork();
fork();
}
return 0;
}
最佳答案
“查看”每条语句执行时进程数量如何变化:
/* before */ /* ... */ /* after */
/* 1 */ fork(); /* 2 */
/* 2 */ fork(); /* 4 */
/* 4 */ if (fork() > 0) { /* 8 (4 go into the if) */
/* 8 */ fork(); /* 12: 4 (outside) + 8 (inside) */
/* 12 */ fork(); /* 20: 4 (outside) + 16 (inside) */
}
/* 20 */ /* ... */ /* total processes: 20 */
关于c - 创建了多少进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60396860/