[英]How to end a process in c++?
好的,所以我想編寫一個可以結束當前正在運行的特定進程的c ++程序。 我已經搜索了互聯網,但我遇到的所有解決方案都對我沒有意義。 有沒有簡單的方法來結束流程?
在POSIX上,您調用kill(3)
將SIGTERM
發送到該進程。 在Windows上,您調用TerminateProcess()
。
假設您使用的是* 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。處理。 對於SIGCONT,發送和接收進程屬於同一會話就足夠了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.