系统编程——注册信号处理方式

注册信号处理的两种方式

两个函数所在头文件都为 #include<signal.h>

1.signal()函数

typedef void (*sighandler_t)(int);
sighandler_t signal(int signum, sighandler_t handler);

  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
@handler:信号处理方式,值可以为
#define SIG_DFL 0 /* 注册为系统默认处理,Default action. /
#define SIG_IGN 1 /
注册为忽略:删除信号Ignore signal. / (1能用 但是有警告)
还可以使用类型为 void (
)(int)的函数名
返回值:旧处理方式

2. sigaction函数

int sigaction(int signum, const struct sigaction *act,struct sigaction *oldact);
@signum:信号值
@act:要设置的信号处理方式
@oldact:保存旧处理方式
struct sigaction {
void (*sa_handler)(int); //SIG_DFL,SIG_IGN,信号处理函数名
void (*sa_sigaction)(int, siginfo_t *, void *); //当sa_flags为SA_SIGINFO
sigset_t sa_mask; //屏蔽信号集(不会删除会存入搁置信号集):与忽略不同(会删除)
int sa_flags; //标志位:SA_RESTART:重新调用系统调用,SA_INTERRUPT:中断 SA_SIGINFO:查询
void (*sa_restorer)(void);
};

#include <signal.h>
#include <stdio.h>
#include <unistd.h>


void 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值