【问题标题】:How can I visualise how many processes this code creates?我如何可视化这段代码创建了多少进程?
【发布时间】:2018-05-26 23:01:46
【问题描述】:

这段代码创建了多少个进程?

for(int i = 0 ; i < 5 ; i++){
    if(fork() == fork())
    break;
}

【问题讨论】:

  • 系统资源允许的数量。
  • Fork bomb 有一张漂亮的照片。
  • 显然不是叉子炸弹。

标签: c++ c++11 process fork unistd.h


【解决方案1】:

第一个父母产生五个孩子。每个都产生四个孩子。每一个都会产生三个孩子,依此类推。

原来如此:

5 * (1 + 4 * (1 + 3 * (1 + 2 * (1 + 1))))

看起来产生了 325 个进程,加上原来的一个。

【讨论】:

  • 在 for 正下方添加一个 printf 会产生 364 行输出。建议正确答案是 363+1。
猜你喜欢
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 2019-08-22
  • 1970-01-01
  • 2013-11-01
相关资源
最近更新 更多