Spec-Zone.ru › C

SIG_DFL, SIG_IGN

Определено в заголовке <signal.h>
#define SIG_DFL /*implementation defined*/
#define SIG_IGN /*implementation defined*/

Макросы SIG_DFL и SIG_IGN расширяются до целочисленных выражений, которые не равны адресу любой функции. Макросы определяют стратегии обработки сигналов для функции signal().

Константа Объяснение
SIG_DFL обработка сигнала по умолчанию
SIG_IGN сигнал игнорируется

Пример

#include <signal.h>
#include <stdio.h>
 
int main(void)
{
    /* using the default signal handler */
    raise(SIGTERM);
    printf("Exit main()\n");   /* never reached */
}

Вывод:

(none)

Пример

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

Вывод:

Exit main()

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.14/3 Обработка сигналов <signal.h> (с. 193)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.14/3 Обработка сигналов <signal.h> (с. 265)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.14/3 Обработка сигналов <signal.h> (с. 246)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
    • 4.7 ОБРАБОТКА СИГНАЛОВ <signal.h>

См. также

Документация C++ для SIG_DFL, SIG_IGN

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/program/SIG_strategies

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API