signal信号

除了自然规律,其余的规则都是人定的,
signal就是一种规则。

信号的本质是一些列整数,用整数来表示不同含义的信号。

例如:SIFGINT代表signal interpret,即ctrl+c

改变信号行为

如上所述,默认情况下SIFGINT代表终止程序,但是可以通过signal()来改变SIFGINT的行为:

//回调函数
static void sighander(int sig)
{
  printf("jjjjj\n");
}

//信号设置函数
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绝对值的进程组内所有下属进程发送信号。

posted @ 2021-03-02 10:28  多弗朗强哥  阅读(231)  评论(0编辑  收藏  举报