linux-0.11调试教程,信号处理方式
来源:互联网 发布:socket编程udp 编辑:程序博客网 时间:2024/05/16 07:38
信号处理方式根据sa_handle可以分为3中。
第一种:默认,如果是SIGCHLD则返回。如果不是则调用do_exit()函数结束进程。蓝色代码。
第二种:忽略,直接返回。红色代码。update对信号值SIGINT和SIGTERM的处理句柄为SIG_IGN(忽略)。
第三种:用户自定义,收到对应的信号后,则会运行用户的自定义程序。
void do_signal(long signr,long eax, long ebx, long ecx, long edx,
long fs, long es, long ds,
long eip, long cs, long eflags,
unsigned long * esp, long ss)
{
unsigned long sa_handler;
long old_eip=eip;
struct sigaction * sa = current->sigaction + signr - 1;
int longs;
unsigned long * tmp_esp;
sa_handler = (unsigned long) sa->sa_handler;
if (sa_handler==1)
return;
if (!sa_handler) {
if (signr==SIGCHLD)
return;
else
do_exit(1<<(signr-1));
}
if (sa->sa_flags & SA_ONESHOT)
sa->sa_handler = NULL;
1.9.5版中147页把SIGCHLD的含义弄错了。
#define SIGCHLD 17
3.0版310页把SIGCHLD的值弄错了。
- linux-0.11调试教程,信号处理方式
- linux信号的默认处理方式
- linux 下的信号处理方式
- linux 信号&信号处理
- linux 信号&信号处理
- linux 信号&信号处理
- 设置信号处理方式
- Android/LINUX C语言中的信号SIGNAL处理方式
- linux进程间通信方式之信号处理sigaction
- linux进程间通信方式之信号处理sigaction
- linux进程间通信方式之信号处理signal
- Linux信号与信号处理
- Linux信号和信号处理
- linux信号处理 信号 定时器
- Linux信号与信号处理
- Linux信号与信号处理
- 将信号用作 Linux 调试工具--使用智能信号处理更快地寻找 bug
- linux-0.11内核 信号处理小结
- [PHP]使用CodeIgniter快速搭建博客框架
- AdWords vs. AdSense
- eclipse自动刷新
- 架构师之路1
- 架构师之路2
- linux-0.11调试教程,信号处理方式
- 架构师之路3
- 哈希表学习
- [Linux] 二,Linux的安装
- android布局文件与R不同步的解决办法,保证有效
- 2013寒假练习 1015:Edit Distance
- 央行正回购,逆回购操作记录
- poj 3415 长度超过K的公共子串个数
- 4.5备忘录模式(5.6)