这段代码有什么作用?

这段代码有什么作用?

我在推文中找到了这段代码:

:(){ :|: & };:

它说了一些关于 fork 的内容,但我不完全明白它是如何工作的。有人可以详细解释一下它的作用和工作原理吗?提前致谢。

答案1

正如您所听到的,这是一个“叉子炸弹”。有一个整体关于它的维基百科页面

在这种情况下,fork 炸弹是一个在后台运行的递归函数,这要归功于 & 运算符。这确保了子进程不会死亡并不断派生函数的新副本,从而消耗系统资源。 -维基百科

简而言之,它正在创建越来越多的进程(通过递归调用相同的函数),从而使系统超载。

您会注意到函数标识符是“:()”,您可以将其替换为名称并缩进代码以使其更清晰:

通过替换函数标识符并重新缩进,代码如下:

bomb() { 
  bomb | bomb & 
}; 
bomb

“孩子们,不要在家里尝试这个。”-先生。向导

相关内容