簡體   English   中英

如何在C ++中結束進程?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM