除了自然规律,其余的规则都是人定的,
signal就是一种规则。
信号的本质是一些列整数,用整数来表示不同含义的信号。
例如:SIFGINT代表signal interpret,即ctrl+c
改变信号行为
如上所述,默认情况下SIFGINT代表终止程序,但是可以通过signal()来改变SIFGINT的行为:
//回调函数
static void sighander(int sig)
{
printf("jjjjj
");
}
//信号设置函数
signal(SIFGINT,sighandler);
发送信号
一个进程可以使用kill()向另一个进程发送信号。之所以使用kill是因为信号在初期就是代表结束进程。
#include<signal.h>
int kill(pid_t pid,int sig);
pid>0 : 向指定pid发送信号
pid=0 : 向同组发送信号
pid=-1 :调用进程有权将信号发往的每个目标进程,除去init(进程ID为1)和调用进程自身。
pid<-1 : 向组ID等于该pid绝对值的进程组内所有下属进程发送信号。