Chinaunix首页 | 论坛 | 博客
  • 博客访问: 631260
  • 博文数量: 1008
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5175
  • 用 户 组: 普通用户
  • 注册时间: 2012-07-31 09:44
文章分类
文章存档

2012年(1008)

我的朋友

分类:

2012-08-01 11:16:01

原文地址:信号处理 作者:luozhiyong131

  1. /*
  2.  *    使用signal函数设置SIGINT和SIGQUIT信号的处理函数
  3.  *    Lzy    2011-6-14
  4.  */

  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <signal.h>

  8. void sig_handler(int sig)            //信号处理函数
  9. {
  10.     switch(sig)
  11.     {
  12.         case SIGINT:
  13.             printf("Recived signal: SIGINT\n");
  14.             break;
  15.             
  16.         case SIGQUIT:
  17.             printf("Recived signal: SIGQUIT\n");
  18.             break;
  19.             
  20.         default:
  21.             break;
  22.     }
  23. }

  24. int main(void)
  25. {
  26.     signal(SIGINT, sig_handler);        //设置SIGINT处理函数
  27.     signal(SIGQUIT, sig_handler);        //设置SIGQUIT处理函数
  28.     
  29.     for(;;);                //无限循环
  30.     
  31.     return 0;
  32. }
  1. /*
  2.  *    使用sigaction函数设置SIGINT信号的处理函数
  3.  *    Lzy    2011-6-14
  4.  */

  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <signal.h>

  8. void sig_handler(int sig, siginfo_t *info, void *t)            //信号处理函数
  9. {
  10.     switch(sig)
  11.     {
  12.         case SIGINT:
  13.             printf("Recived signal: SIGINT\n");
  14.             break;    
  15.             
  16.         default:
  17.             break;
  18.     }
  19. }

  20. int main(void)
  21. {
  22.     struct sigaction act;                //定义sigaction结体
  23.     act.sa_sigaction = sig_handler;        //指定信号处理函数
  24.     sigemptyset(&act.sa_mask);            //清空信号集中所有信号
  25.     act.sa_flags = SA_SIGINFO;            //信号附带的参数可以被传递到处理函数之中
  26.     
  27.     sigaction(SIGINT, &act, NULL);        //设置SIGINT处理函数    
  28.     
  29.     for(;;);                //无限循环
  30.     
  31.     return 0;
  32. }
阅读(152) | 评论(0) | 转发(0) |
0

上一篇:队列

下一篇:守护进程

给主人留下些什么吧!~~