Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49634
  • 博文数量: 5
  • 博客积分: 1421
  • 博客等级: 上尉
  • 技术积分: 78
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-13 00:12
文章分类

全部博文(5)

文章存档

2010年(5)

我的朋友
博文列表
标题:
标题 阅读 评论 转发 发布日期
c 语言中__P 的用法 2469 1 0 2010-04-29
errno 的用法 3674 0 0 2010-04-28
linux sock_raw原始套接字编程 1421 0 0 2010-02-03
socket编程中recvfrom的非阻塞设置方法 16400 0 2 2010-02-02
读书笔记:sigsetjmp & siglongjmp 2239 0 0 2010-01-19
给主人留下些什么吧!~~

chinaunix网友2010-10-22 16:02

学习了你的,关于不能handle 的问题,我注释了一行code就可以了,你把信号集都block了,那么里面的INT当然就没有出来了哈~~ 慢慢学习你的,我的邮箱,大家互相学习哈mrbone9@gmail.com #include #include #include sigjmp_buf sigBuf; void FunB() { printf("Enter FunB!\n"); printf("Exit FunB!\n"); } void FunA() { printf("Enter FunA!\n"); call(); printf("Exit FunA!\n"); } int main(int argc,char *argv[]) { int iRet = 0; struct sigaction act; sigset_t stSig; sigemptyset(&stSig); sigaddset(&stSig, SIGINT); //sigprocmask(SIG_BLOCK, &stSig, NULL); act.sa_handler = FunB; act.sa_flags = SA_INTERRUPT; sigemptyset(&act.sa_mask); if (sigaction(SIGINT,&act,NULL) != 0) { perror("sigaction"); } iRet = sigsetjmp(sigBuf,1); if (0 == iRet) { kill(getpid(),SIGINT); FunA(); } else if (iRet != 0) { printf("program close!\n"); } return 0; }

回复 |  删除 |  举报
留言热议
请登录后留言。

登录 注册