linux 信号-- 安装
2014-04-25 15:58
381 查看
1.sigaction安装:
结构sigaction定义如下:
sa_hanlder:一个带有int参数的函数指针,或者SIG_IGN(忽略),或者SIG_DFL(默认).
sa_mask:信号屏蔽字(集).当该信号处理函数返回时,屏蔽字恢复.
sa_sigaction:替代的信号处理程序,当使用了SA_SIGINFO标志时,使用该信号处理程序.
sa_flag是一个选项,主要理解三个
structsigactionnewaction;
newaction.sa_handler=handle;
newaction.sa_flags=0;//SA_RESTART;
sigemptyset(&newaction.sa_mask);
sigaddset(&newaction.sa_mask,12);//设置上后,处理此信号期间,不会再收到此信号
sigaction(12,&newaction,NULL);
2.signal
可以用sigaction实现:
sig_func*signal(intsigno,sig_func*func);
{
structsigactionact,oact;
act.sa_handler=func;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
if(sigaction(signo,&act,&oact)<0)
returnSIG_ERR;
returnoact.sa_hanlder;
}
结构sigaction定义如下:
structsigaction{ void(*sa_handler)(int); sigset_tsa_mask; intsa_flag; void(*sa_sigaction)(int,siginfo_t*,void*); };
sa_hanlder:一个带有int参数的函数指针,或者SIG_IGN(忽略),或者SIG_DFL(默认).
sa_mask:信号屏蔽字(集).当该信号处理函数返回时,屏蔽字恢复.
sa_sigaction:替代的信号处理程序,当使用了SA_SIGINFO标志时,使用该信号处理程序.
sa_flag是一个选项,主要理解三个
SA_INTERRUPT由此信号中断的系统调用不会自动重启 SA_RESTART由此信号中断的系统调用会自动重启
SA_SIGINFO提供附加信息,一个指向siginfo结构的指针以及一个指向进程上下文标识符的指针
一般的用法:
structsigactionnewaction;
newaction.sa_handler=handle;
newaction.sa_flags=0;//SA_RESTART;
sigemptyset(&newaction.sa_mask);
sigaddset(&newaction.sa_mask,12);//设置上后,处理此信号期间,不会再收到此信号
sigaction(12,&newaction,NULL);
2.signal
可以用sigaction实现:
sig_func*signal(intsigno,sig_func*func);
{
structsigactionact,oact;
act.sa_handler=func;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
if(sigaction(signo,&act,&oact)<0)
returnSIG_ERR;
returnoact.sa_hanlder;
}
相关文章推荐
- [linux]ubuntu 新建用户及相关问题
- linux学习 命令ll后字段的解释
- Linux下通用线程池的创建与使用
- linux mount命令学习
- NO.92 Linux nscd服务占内存巨大大无脑重启该服务解决
- arm内核学习
- 全面了解linux服务器的常用命令总结
- linux-溢出程序
- linux-溢出程序
- 10个核心的Linux面试问题与答案
- linux tftp创建
- CentOS6 rpm 安装Open vSwitch(OVS)报错
- CentOS6.5安装配置SVN
- java下linux和window通用的获取指定网段的本地ip地址(NetworkInterface)
- linux中设备分为c字符设备和b块设备
- linux学习:进程间通信—管道
- Linux netstat命令详解
- CentOS开机启动服务
- Linux程序设计 清空标准输入缓冲区
- linux tr替代文件内容