0

「ゾンビクリエーター」と「ゾンビターミネーター」を書きたい。重要な点は、ある部分でゾンビを作成し、コードの他の部分でゾンビを終了させたいということです。私はCを使用しています。

例:

create_zombie(); //let's say it's a spawn, using fork etc.

/* a houndred lines below */

kill_zombie(PID); // PID is determinated by user, I want to leave him the choice

.. elseの場合、fork()を使用してこれを行う方法を知っていますが、それは重要ではありません。ある種のリモコンを探しています。それは可能ですか?彼を長い間眠らせることは解決策かもしれませんか?

4

2 に答える 2

1

Linuxを想定していますが、プロセスは他のオペレーティングシステムでも同様である必要があります。ヘッダーファイルkill()で通常宣言されている宣言された関数を調べたいと思います。signal.hこれにより、ゾンビキラーから特定のPIDに信号を送信できるようになります。最も簡単なアプローチは、ゾンビプロセスにkillシグナルを送信することです(SIGKILL)。SIGKILLキャッチしたり無視したりすることはできず、すぐにプロセスを強制終了します。

ゾンビプロセスでクリーンアップを行う必要がある場合は、signal()関数を使用してシグナルハンドラーを作成できます。これにより、プロセスがシグナルを受信したときに呼び出す関数を指定できます。この関数は、クリーンアップコードを実装してからexit()

Linuxでは、シェルにの機能を模倣するkillコマンドが必要ですkill()。構文は通常kill -s 9 PIDです。これにより、SIGKILL(信号番号9)がプロセスPIDに送信されます。

この答えがあなたを正しい方向に導いてくれることを願っています。

于 2012-11-30T01:08:38.997 に答える
0

プロセスをforkすると、forkは子プロセスで0を返し、親で子のプロセスIDを返します。それらを配列に保存したり、ファイルに書き込んだり、パイプに書き込んだりして、必要になるまでもう一方の端を「キャップ解除」しないでください。

于 2012-11-30T00:45:34.343 に答える