Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7538051
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: C/C++

2011-06-17 21:15:07

  1. /*
  2.  * 信号集操作
  3.  * 屏蔽信号
  4.  * Lzy    2011-6-14
  5.  */

  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <unistd.h>
  9. #include <signal.h>


  10. void sig_handler(int sig)        //信号处理函数
  11. {
  12.     if(sig == SIGINT)
  13.         printf("Receive signal: SIGINT\n");
  14. }

  15. int main(void)
  16. {
  17.     sigset_t sigset;        //定义信号集    
  18.     sigemptyset(&sigset);    //清空信号集
  19.     sigaddset(&sigset, SIGINT);    //添加SIGINT信号至信号集
  20.     
  21.     signal(SIGINT, sig_handler);//设置信号处理函数
  22.     
  23.     while(1)
  24.     {
  25.         sigprocmask(SIG_BLOCK, &sigset, NULL);    //阻塞信号
  26.         printf("SIG_BLOCK\n");
  27.         sleep(3);
  28.         sigprocmask(SIG_UNBLOCK, &sigset, NULL);    //阻塞信号
  29.         printf("SIG_UNBLOCK\n");
  30.         sleep(3);
  31.     }

  32.     return 0;
  33. }
  1. /*
  2.  *    在程序中设定一个定时器
  3.  *    Lzy    2011-6-14
  4.  */

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

  8. /*
  9.  *    SIGALRM信号的默认处理方法是终止进程
  10.  *    定时到程序结束
  11.  */
  12. int main(void)
  13. {
  14.     int i = 0;
  15.     alarm(1);        //定时一秒
  16.     while(1)
  17.     {
  18.         printf("%d\t",i++);
  19.     }

  20.     return 0;
  21. }
阅读(1187) | 评论(0) | 转发(2) |
0

上一篇:管道

下一篇:信号量

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