Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C / C ++でのC対BASHフォーク爆弾?


BASHフォーク爆弾がそのバージョンのCプログラムよりもはるかに強力であることはすでに明らかです。主な原因は、BASHで作成されたプロセスが親から切り離されていることです。親プロセス(最初に開始したプロセス)が破棄または強制終了された場合、残りのプロセスまたは残りのプロセスは存続します。ただし、C実装の場合、親が破棄または強制終了されると、リストされている子プロセスは自動的に停止します。スクリプトは、システムと直接通信する責任があります。

Cのフォーク爆弾プログラムは更新または変更できます。フォークプロセスの作成時に、プログラムにメモリを割り当てることができます。

次のプログラムは、修正されたCフォーク爆弾の実装として扱われます-

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

  1. C / C ++のmemcpy()

    この記事では、C ++ STLでのmemcpy()関数の動作、構文、および例について説明します。 memcpy()とは何ですか? memcpy()関数は、C ++ STLに組み込まれている関数であり、ヘッダーファイルで定義されています。 memcpy()関数は、メモリのブロックをコピーするために使用されます。この関数は、あるメモリ位置から別のメモリ位置に値の数をコピーするために使用されます。 関数の結果は、データのバイナリコピーです。この関数は、終了ソースまたは終了ヌル文字をチェックせず、ソースからnumバイトをコピーするだけです。 例 void memcpy( void* destin

  2. C / C ++のAAツリー?

    コンピュータサイエンスのAAツリーは、順序付けられたデータを効率的に保存および取得するために実装されたバランスの取れたツリーの形式として定義されます。 AAツリーは、エントリの効率的な追加と削除をサポートするバイナリ検索ツリーの形式である赤黒ツリーのバリエーションとして扱われます。赤黒木とは対照的に、AAツリーの赤いノードは、左のサブチャイルドではなく、右のサブチャイルドとしてのみ追加できます。この操作の結果、2-3-4ツリーではなく2-3ツリーのシミュレーションが行われるため、メンテナンス操作が簡素化されます。赤黒木のメンテナンスアルゴリズムでは、ツリーのバランスを適切にとるために、7つの異