Spec-Zone.ru › C

SIG_ERR

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

Значение типа void (*)(int). При возвращении из signal, указывает на ошибку.

Пример

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
 
void signal_handler(int sig)
{
    printf("Received signal: %d\n", sig);
}
 
int main(void)
{
    /* Install a signal handler. */
    if (signal(SIGTERM, signal_handler) == SIG_ERR)
    {
        printf("Error while installing a signal handler.\n");
        exit(EXIT_FAILURE);
    }
 
    printf("Sending signal: %d\n", SIGTERM);
    if (raise(SIGTERM) != 0)
    {
        printf("Error while raising the SIGTERM signal.\n");
        exit(EXIT_FAILURE);
    }
 
    printf("Exit main()\n");
    return EXIT_SUCCESS;
}

Вывод:

Sending signal: 15
Received signal: 15
Exit main()

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.14/3 Обработка сигналов <signal.h> (с. 194)
  • Стандарт 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>

См. также

signal
устанавливает обработчик сигналов для определённого сигнала
(функция)
Документация C++ для SIG_ERR

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

Spec-Zone.ru

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