使用 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

(……或類似的,取決於實施)