10_18 用sigaction实现signal函数
2015-12-10 09:31
363 查看
除非设置了SA_RESTART标志,否则sigaction函数不再重启动被中断的系统调用。
一、源代码:
vim 10_18.c
#include "apue.h"
Sigfunc * singnal(int signo,Sigfunc *func)
{
struct sigaction act,oact;
act.sa_handler = func;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
if (signo == SIGALRM)
#ifdef SA_INTERRUPT
act.sa_flags |= SA_INTERRUPT;
#endif
else
act.sa_flags |= SA_RESTART;
if (sigaction(signo,&act,&oact) < 0)
return (SIG_ERR);
return (oact.sa_handler);
}
~
~
一、源代码:
vim 10_18.c
#include "apue.h"
Sigfunc * singnal(int signo,Sigfunc *func)
{
struct sigaction act,oact;
act.sa_handler = func;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
if (signo == SIGALRM)
#ifdef SA_INTERRUPT
act.sa_flags |= SA_INTERRUPT;
#endif
else
act.sa_flags |= SA_RESTART;
if (sigaction(signo,&act,&oact) < 0)
return (SIG_ERR);
return (oact.sa_handler);
}
~
~
相关文章推荐
- 用fo-dicom实现print scu的注意事项
- One Day,One Lib,One Pieces,One Jiayou!
- ios NSUserDefaults的常用方法。userdefaults
- shell脚本 数组操作报Syntax error: "(" unexpected
- 手心输入法皮肤制作技巧
- Spring:AOP编程
- 【Beta】Daily Scrum Meeting第四次
- summary ranges leetcode java
- iOS关于打包出错
- 立即执行函数: (function ( ){...})( ) 与 (function ( ){...}( )) 有什么区别?
- DM9000网卡驱动源码分析系列08 - 整理补充
- 程序是什么?
- 返回顶部
- 学习笔记---机器学习技法
- .NET Framework源码查看及下载
- html+css实现选项卡功能
- 12.9
- 代码是什么?
- python操作文件常用写法
- arcgis js 跨域代理proxy设置(java)