C 与 BASH C/C++ 中的 Fork bomb?
cc++server side programmingprogramming
已经清楚的是,BASH fork bomb 比其 C 程序版本强大得多。主要原因是在 BASH 中,创建的进程与父进程分离。如果父进程(我们最初启动的进程)被销毁或终止,则剩余或其余进程将继续存在。但在 C 实现的情况下,如果父进程被销毁或终止,列出的子进程将自动终止。脚本负责直接与系统通信。
C 中的 fork bomb 程序可以更新或修改。我们可以在创建 fork 进程时在程序中分配内存。
以下程序被视为修改后的 C fork bomb的实现 −
// 修改后的 fork bomb #include <unistd.h> #include <malloc.h> int main(){ // 无限循环 while (1){ // 生成子 fork 进程 fork(); // 在 RAM 中分配内存 int *p1 = (int *) malloc (sizeof (int) * 100000); } }