2011-06-19 15 views
-1

さて、私は現在実行中の特定のプロセスを終了できるC++プログラムを作成したいと思います。私はインターネットを検索しており、私が見つけた解決策のどれも私には意味をなさない。プロセスを終了する簡単な方法はありますか?C++でプロセスを終了するには?

+1

あなたはどのようなOSをターゲットにしていますか? – bdonlan

+1

ポータブルソリューションが必要ですか?そうでない場合は、どのようなシステムですか? –

+0

これは自分で作成したプロセスですか? –

答えて

5

POSIXでは、kill(3)と呼び出して、SIGTERMをプロセスに送信します。 WindowsではTerminateProcess()と呼ばれます。

0

あなたは* nixのプラットフォームにしていると仮定して、プロセスIDを持っていることを動作するはずkill(2)を使用して、(つまり、あなた自身がそのpidを推測するために他のいくつかの方法を使用するプロセスを生み出した):

#include <sys/types.h> 
#include <signal.h> 

void main() { 
    /* ... */ 
    pid_t pid = ???; 
    kill(pid, SIGTERM); 
} 

それだけ、しかし、一定の条件の下で動作します:

それは(Linuxでは:CAP_KILL機能を持つ)特権のいずれかでなければならない信号を送信する権限持っているプロセスのために、またはの実数または実効ユーザIDを送信プロセスは本物のものと同等でなければならないターゲットプロセスのset-user-ID。 SIGCONTの場合、送信プロセスと受信プロセスが同じセッションに属していれば十分です。

関連する問題