宏定义SIG_DFL及SIG_IGN

来源:互联网 发布:学软件测试怎么样 编辑:程序博客网 时间:2024/05/21 14:08

来源

#define SIG_DFL ((void (*) (int))  0)   *语句A*#define SIG_IGN ((void (*) (int))  1)#define SIG_ERR ((void (*) (int)) -1)linux的信号signal函数:#include <signal.h>typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);

解析

  • signal函数中的信号处理函数handler,可以是用户指定的一个信号处理函数,也可以是内核特定的函数指针SIG_DFLSIG_IGN
  • 若信号句柄是SIG_DFLSIG_IGN,则分别表示对捕获的信号采取忽略操作或者默认操作。
  • 信号句柄SIG_DFLSIG_IGN也必须是无返回值且具有一个整型参数的函数指针。
  • void(*)(int)代表一个无返回值的且具有一个整型参数的函数指针类型(这里是一个空函数)
  • 因此,语句A表示将“0”强制类型转换为无返回值且具有一个整型参数的函数指针。

    参考文献

    http://www.cnblogs.com/liulipeng/p/3555395.html

0 0
原创粉丝点击