SIG_DFL, SIG_IGN

来自cppreference.com
< c‎ | program


在标头 <signal.h> 定义
#define SIG_DFL /* 由实现定义 */
#define SIG_IGN /* 由实现定义 */

SIG_DFLSIG_IGN 宏展开成不等于任何函数地址的整数表达式。宏定义用于 signal() 函数的信号处理策略。

常量 解释
SIG_DFL 默认信号处理
SIG_IGN 忽略信号

示例

#include <signal.h>
#include <stdio.h>
 
int main(void)
{
    /* 使用默认信号处理 */
    raise(SIGTERM);
    printf("Exit main()\n");   /* 永不抵达 */
}

输出:

(无)

示例

#include <signal.h>
#include <stdio.h>
 
int main(void)
{
    /* 忽略信号 */
    signal(SIGTERM, SIG_IGN);
    raise(SIGTERM);
    printf("Exit main()\n");
}

输出:

Exit main()

引用

  • C17 标准(ISO/IEC 9899:2018):
  • 7.14/3 Signal handling <signal.h> (第 193 页)
  • C11 标准(ISO/IEC 9899:2011):
  • 7.14/3 Signal handling <signal.h> (第 265 页)
  • C99 标准(ISO/IEC 9899:1999):
  • 7.14/3 Signal handling <signal.h> (第 246 页)
  • C89/C90 标准(ISO/IEC 9899:1990):
  • 4.7 SIGNAL HANDLING <signal.h>


参阅