2014年2月19日

signal.h中的宏定义SIG_DFL及SIG_IGN

摘要: SIG_DFL,SIG_IGN 分别表示无返回值的函数指针,指针值分别是0和1,这两个指针值逻辑上讲是实际程序中不可能出现的函数地址值。SIG_DFL:默认信号处理程序SIG_IGN:忽略信号的处理程序下面是一个指针值测试实例:#include #define SIG_DFL ((void(*)(int))0)#define SIG_IGN ((void(*)(int))1)int main() { int a = (int) SIG_DFL; int b = (int) SIG_IGN; printf("a = %d/n", a); //0 printf("b 阅读全文

posted @ 2014-02-19 10:40 屁屁侠 阅读(28990) 评论(0) 推荐(0) 编辑

#define SIG_DFL ((void(*)(int))0)

摘要: 在linux内的信号处理函数中,有#define SIG_DFL ((void(*)(int))0)和#define SIG_IGN ((void(*)(int))1)两个宏定义。要理解这两个宏定义,我们先要知道signal函数的运行机制。首先我们看看该函数的原型声明,如下:void (*signal (int signr,void (*handler)(int))) (int)signal函数有两个参数,一个是指定需要捕获的信号signr;另外一个是新的信号处理函数指针void (*handler)(int)。注意,新的信号处理句柄或者说是新的信号处理函数是一个无返回值且具有一个整型参数的函 阅读全文

posted @ 2014-02-19 10:20 屁屁侠 阅读(2912) 评论(0) 推荐(1) 编辑

导航