LINUX信号

 一、当系统接收到信号时,有三种处理方法:
 1.系统默认
 2.忽略
 3.捕捉信号

二、 sighandler_t signal(int signum, sighandler_t handler);
 : 通过handler标志去处理接受到的signum信号

 1、 signum信号编号:
1) SIGHUP        2) SIGINT        3) SIGQUIT       4) SIGILL        5) SIGTRAP
 6) SIGABRT       7) SIGBUS       8) SIGFPE        9) SIGKILL       10) SIGUSR1
 11) SIGSEGV      12) SIGUSR2     13) SIGPIPE      14) SIGALRM      15) SIGTERM
 16) SIGSTKFLT    17) SIGCHLD     18) SIGCONT      19) SIGSTOP      20) SIGTSTP
 21) SIGTTIN      22) SIGTTOU     23) SIGURG       24) SIGXCPU      25) SIGXFSZ
 26) SIGVTALRM    27) SIGPROF     28) SIGWINCH     29) SIGIO        30) SIGPWR
 31) SIGSYS       34) SIGRTMIN    35) SIGRTMIN+1   36) SIGRTMIN+2   37) SIGRTMIN+3
 38) SIGRTMIN+4   39) SIGRTMIN+5  40) SIGRTMIN+6   41) SIGRTMIN+7   42) SIGRTMIN+8
 43) SIGRTMIN+9   44) SIGRTMIN+10 45) SIGRTMIN+11  46) SIGRTMIN+12  47) SIGRTMIN+13
 48) SIGRTMIN+14  49) SIGRTMIN+15 50) SIGRTMAX-14  51) SIGRTMAX-13  52) SIGRTMAX-12
 53) SIGRTMAX-11  54) SIGRTMAX-10 55) SIGRTMAX-9   56) SIGRTMAX-8   57) SIGRTMAX-7
 58) SIGRTMAX-6   59) SIGRTMAX-5  60) SIGRTMAX-4   61) SIGRTMAX-3   62) SIGRTMAX-2
 63) SIGRTMAX-1   64) SIGRTMAX
9) SIGKILL
19) SIGSTOP
注意:以上两个信号既不能被忽略也不能被捕捉
 2、handler : 处理方式(函数指针)
     1).系统默认    SIG_DFL
     2).忽略        SIG_IGN
     3).捕捉信号    信号处理函数
 3、handler类型:typedef void (*sighandler_t)(int);

            sighandler_t 函数指针类型; 类型:void (*)(int);    

eg:构造信号处理函数:
void sig_int(int sig)
    {
    
    }

二、函数sigaction功能基本和signal一致,功能必signal强大,更加灵活
int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);
signum :信号的编号
struct sigaction {
    void    (*sa_handler)(int);     //用于接受信号的处理方式(信号处理函数地址)
    void    (*sa_sigaction)(int,siginfo_t*,void*);    //用于接受信号的处理方式(信号处理函数地址),
                                                      //可以访问到siginfo_t 结构体,但是sa_flags
                                                      //需要跟上SA_SIGINFO标识
    sigset_t    sa_mask;            //信号集
    int    sa_flags;                //标志 eg:SA_SIGINFO
    void    (*sa_restorer)(void);
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值