さて、現在実行中の特定のプロセスを終了できる C++ プログラムを書きたいと思います。私はインターネットを検索しましたが、私が見つけた解決策はどれも意味がありません。プロセスを終了する簡単な方法はありますか?
質問する
1189 次
2 に答える
5
POSIX では、プロセスkill(3)
に送信SIGTERM
するために呼び出します。Windows では、 を呼び出しますTerminateProcess()
。
于 2011-06-19T20:30:33.317 に答える
0
あなたが *nix プラットフォームを使用していて、プロセス ID を持っていると仮定すると (つまり、他の方法を使用してプロセスを生成し、pid
そのkill(2)
.
#include <sys/types.h>
#include <signal.h>
void main() {
/* ... */
pid_t pid = ???;
kill(pid, SIGTERM);
}
ただし、特定の条件下でのみ機能します。
プロセスがシグナルを送信する許可を得るには、そのプロセスに特権が与えられている (Linux では CAP_KILL 機能を持っている) か、送信プロセスの実ユーザー ID または実効ユーザー ID が、ターゲットの実ユーザー ID または保存されたセットユーザー ID と等しくなければなりません。処理する。SIGCONT の場合は、送信プロセスと受信プロセスが同じセッションに属している場合で十分です。
于 2011-06-19T20:42:40.680 に答える