已经明确,BASH fork 炸弹比其 C 程序版本强大得多。主要原因是在 BASH 中创建的进程与父进程分离。如果父进程(我们最初启动的进程)被销毁或终止,剩余的进程将继续存在。但在 C 实现的情况下,如果父进程被销毁或终止,列出的子进程会自动终止。脚本负责直接与系统通信。
C语言的fork炸弹程序可以更新或修改。我们可以在创建 fork 进程时在程序中分配内存。
以下程序被视为修改后的 C fork 炸弹的实现 -
// Modified fork bomb
#include <unistd.h>
#include <malloc.h>
int main(){
// Infinite loop
while (1){
// Generating child fork processes
fork();
// Allocating memory in RAM
int *p1 = (int *) malloc (sizeof (int) * 100000);
}
}