使用 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
(……或类似的,取决于实施)