一个学习等待信号sigsuspend()很好的例子
来源:互联网 发布:linux home空间用完了 编辑:程序博客网 时间:2024/06/06 21:43
#include <stdio.h>
#include <stdlib.h>
#include <bits/sigset.h>
#include <signal.h>
#include <errno.h>
void pr_mask(char *str)
{
sigset_t sigset01;
int errno_save;
errno_save=errno;
if(sigprocmask(0,NULL,&sigset01)==-1)
perror("provmask");
printf("%s\n",str);
if(sigismember(&sigset01,SIGINT))
printf("SIGINT\n");
if(sigismember(&sigset01,SIGUSR1))
printf("SIGUSR1\n");
if(sigismember(&sigset01,SIGQUIT))
printf("SIGQUIT\n");
if(sigismember(&sigset01,SIGALRM))
printf("SIGALRM\n");
errno=errno_save;
}
void sig_int(int sig)
{
printf("signo is %d\n",sig);
pr_mask("\ntest:in sig_int\n");
}
int main()
{
sigset_t oldmask,newmask,waitmask;
printf("mypid is :%d\n",getpid());
pr_mask("program start");
if(signal(SIGINT,sig_int)==SIG_ERR)
{
perror("signal");
exit(1);
}
if(signal(SIGUSR1,sig_int)==SIG_ERR)
{
perror("signal2");
exit(1);
}
sigemptyset(&waitmask);
sigemptyset(&newmask);
sigaddset(&waitmask,SIGUSR1);
sigaddset(&newmask,SIGINT);
sigaddset(&newmask,SIGUSR1);
if(sigprocmask(SIG_BLOCK,&newmask,&oldmask)==-1)//SIGINT
perror("promask");
pr_mask("in the critical region");
if(sigsuspend(&waitmask)!=-1)//SIGUSR1
perror("sigsuspend");
pr_mask("after return from sigsuspend");
if(sigprocmask(SIG_SETMASK,&oldmask,NULL)==-1)
perror("sigprocmask");
pr_mask("\nprogram exit()\n");
return 0;
}
- 一个学习等待信号sigsuspend()很好的例子
- 学习信号处理的一个例子
- Gallery 做的相册 很好的一个学习例子
- sigsuspend 用于等待信号处理程序设置全局变量
- 【C语言】利用sigsuspend实现等待某一个信号
- 友元类一个很好的例子
- 一个流程图例子,很好的。
- proc一个很好的例子
- Drools一个很好的例子
- SDL一个很好的例子
- 学习dojo一个很好的网址:有很多小例子
- jsp上传的一个很好的例子
- 纹理映射的一个很好的例子
- 静态工厂的一个很好的例子
- 一个很好的JAVASCRIPT例子[转载]
- 用XMLHTTP很好的一个例子(原创)
- >+ 用XMLHTTP很好的一个例子
- 用XMLHTTP很好的一个例子
- Error #1034: 强制转换类型失败:无法将 mx.graphics::Stroke@b945581 转换为 mx.graphics.IStroke
- 面试啊面试
- Versions 配合 Xcode 4.5 的 FileMerge
- 函数Math
- Linux 入门笔记(一)
- 一个学习等待信号sigsuspend()很好的例子
- 基于数组的基数排序
- 软件升级
- Objective-c的@property 详解
- android系统文件名称解析
- 项目经理之行业了解
- 结构体、qsort的使用
- Windows Store apps开发[52]Button控件的自定义——模仿开始屏幕中磁贴的按下、移动效果
- NYOJ - 最大素因子