sigaction函数学习

sigaction(查询或设置信号处理方式)
相关函数 signal,sigprocmask() ,sigpending,sigsuspend, sigemptyset
表头文件 #include<signal.h>
定义函数 int sigaction(int signum,const struct sigaction *act ,struct sigaction *oldact);
函数说明 sigaction()会依参数signum指定的信号编号来设置该信号的处理函数。参数signum可以指定SIGKILL和SIGSTOP以外的所有信号。
如参数结构sigaction定义如下
struct sigaction {
void (*sa_handler)(int);
void (*sa_sigaction)(int, siginfo_t *, void *);
sigset_t sa_mask;
int sa_flags;
void (*sa_restorer)(void);
}


  1. #include <signal.h>
  2. #include <unistd.h>
  3. #include <stdio.h>

  4. static void int_hander(int s)
  5. {
  6.     printf("Catch a signal sigint\n");
  7. }

  8. int main(void)
  9. {
  10.     int i;
  11.     struct sigaction act,oact;

  12.     act.sa_handler = int_hander;
  13.     sigemptyset(&act.sa_mask); //清空此信号集
  14.     act.sa_flags = 0;
  15.     sigaction(SIGINT, &act, &oact);

  16.     while(1)
  17.     {
  18.         for(i=0;i<5;i++)
  19.         {
  20.             write(1,".",1);
  21.             sleep(1);
  22.         }
  23.         write(1, "\n", 1);
  24.     }

  25.     sigaction(SIGINT, &oact, NULL); //恢复成原始状态

  26.     return 0;
  27. }

<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>
阅读(12) | 评论(0) | 转发(0) |
0

上一篇:atexit函数学习

下一篇:stat函数学习

给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

习惯就好zz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值