信号之kill-raise
kill(),raise()都是信号发送函数
#include <signal.h>
int kill(pid_t pid, int signo);
kill函数向指定的进程发送信号。
int raise(int signo);
raise函数向本进程发送信号,相当于kill(getpid(), int signo).
#include <sys/types.h>
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
void sig_hander(int signo)
{
printf("get signo: %d, pid: %d\n", signo, getpid());
return;
}
int main()
{
if (signal(SIGILL, sig_hander) == SIG_ERR) {
perror("signal SIGILL error");
return -1;
}
printf("start send sig...\n");
//kill(getpid(), SIGILL);
raise(SIGILL);
printf("end send sig.\n");
return 0;
}
root@spark# ./kill-raise
start send sig…
get signo: 4, pid: 7155
end send sig.
root@spark#