32.信号的捕捉

1.signal函数
typedef void (*sighandler_t)(int);

sighandler_t signal(int signum,sighandler_t handler);

2.sigaction函数
函数原型:
 int sigaction(int signum,   //捕捉的信号
  const struct sigaction* act,
  struct sigaction* oldact

 );

 struct sigaction{
  void (*sa_handler)(int);
  void (*sa_sigaction)(int,siginfo_t*,void*);
  sigset_t sa_mask;   // 在信号处理函数执行过程中,临时屏蔽指定的信号,若出现要屏蔽的信号,则执行完信号处理函数之后处理该信号
  int sa_flags;    //填0:表示调用sa_handler
  void (*sa_restorer)(void);

 };

一般需要处理的参数:sa_handler、sa_mask、sa_flags
不屏蔽信号:sigempty(&act.sa_mask);
设置屏蔽信号:sigaddset(&act.sa_mask,SIGQUIT);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值