Chinaunix首页 | 论坛 | 博客
  • 博客访问: 322759
  • 博文数量: 106
  • 博客积分: 3081
  • 博客等级: 中校
  • 技术积分: 1090
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-15 14:07
文章分类

全部博文(106)

文章存档

2009年(1)

2007年(34)

2006年(71)

我的朋友

分类: C/C++

2006-05-25 22:26:13

#include


void catch()
{
    printf("catch SIGUSR1\n");
}



main()
{
    sigset_t mask;
    int pid;
    sigemptyset(&mask);
    sigaddset(&mask,SIGALRM);
    signal(SIGUSR1,catch);


    pid=fork();
    switch(pid)
    {
    case -1: perror("Error");break;
    
    case 0: alarm(2);
   
    sigsuspend(&mask);break;  
   
    用&mask来暂代替信号屏蔽,反回后恢复到之前的值
    设SIGALRM为阻塞,并等待其它信号来临
   

    default: sleep(3);
    kill(pid,SIGUSR1);break;
   
   
    }
}
 
阅读(954) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~