kill函数将信号发送给进程或进程组。raise函数则允许进程向自身发送信号。
#include <signal.h> int kill(pid_t pid, int signo) int raise(int signo) 返回值:若成功,返回0;出错则返回-1 |
---|
调用raise(signo)相当于kill(getpid(), signo);
kill函数的pid参数的4种不同的情况:
pid > 0 将该信号发送给进程ID为pid的进程。
pid == 0 将该信号发送给和发送进程属于同一进程组的所有进程,发送进程需要具有向这些进程发送信号的权限。
pid < 0 将该信号发送给其进程组ID等于pid绝对值的进程组内的所有进程。发送进程需要具有向该进程组所有进程发送信号的权限。
pid == -1 将该信号发送给所有发送进程具有权限发送信号的进程。所有进程不包括系统进程集中的进程。