世事并無好壞之分,全看我們怎么去想。——哈姆雷特·第二幕第二景
ilocker:關注 Android 安全(新入行,0基礎) QQ: 2597294287
1 #include <signal.h>2 int kill(pid_t pid, int signo);
用于給指定的進程或進程組發(fā)送信號。成功返回 0,出錯返回 -1。
上述中的“所有進程”不包括系統(tǒng)進程。
另外,調用 kill 函數(shù)的進程要有向目標進程發(fā)送信號的權限。非 root 用戶通常只能向與調用 kill 函數(shù)進程具有相同用戶 ID 的進程發(fā)送信號。
如果 signo 為 0,則代表空信號,kill 不發(fā)送實際信號,但可以用來確定指定進程是否仍存在。如果向一個不存在的進程發(fā)送空信號,kill 返回 -1,errno 被設置為 ESRCH (表示 pid 指定的進程或進程組不存在)。
其他 errno:“EINVAL:指定的 singo 無效;EPERM:權限不夠”。
對于進程是否存在這種測試不是原子操作,當 kill 返回時,也可能原來存在的進程此時已終止。另外,系統(tǒng)會復用 pid,所以我們指定 pid 的進程并不一定就是想要測試的那個進程。所以這種測試并不可靠。
學習資料: 《unix 環(huán)境高級編程》
新聞熱點
疑難解答
圖片精選