使用 kill() 進行自殺的過程
程序可以(嘗試)使用 kill()
函式向任何其他程序傳送訊號。
為此,傳送過程需要知道接收程序的 PID。因為,在沒有引入競賽的情況下,程序只能確定其自身的 PID(及其子代的 PID),證明 kill()
的使用的最簡單的例子是讓程序向自己傳送訊號。
下面是一個通過傳送一個 kill-signal(SIGKILL
)來啟動自己終止的程序示例:
#define _POSIX_C_SOURCE 1
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
int main (void)
{
pid_t pid = getpid(); /* Get my iown process ID. */
kill(pid, SIGKILL); /* Send myself a KILL signal. */
puts("Signal delivery initiated."); /* Although not guaranteed,
practically the program never gets here. */
pause(); /* Wait to die. */
puts("This never gets printed.");
}
輸出:
Killed
(……或類似的,取決於實施)