Namespaces
Variants

sig_atomic_t

From cppreference.net
Определено в заголовочном файле <signal.h>
typedef /* unspecified */ sig_atomic_t ;

Целочисленный тип, к которому можно обращаться как к атомарной сущности даже при наличии асинхронных прерываний, вызванных сигналами.

Пример

#include <signal.h>
#include <stdio.h>
volatile sig_atomic_t gSignalStatus = 0;
void signal_handler(int status)
{
    gSignalStatus = status;
}
int main(void)
{
    /* Install a signal handler. */
    signal(SIGINT, signal_handler);
    printf("SignalValue:    %d\n", gSignalStatus);
    printf("Sending signal: %d\n", SIGINT);
    raise(SIGINT);
    printf("SignalValue:    %d\n", gSignalStatus);
}

Возможный вывод:

SignalValue:    0
Sending signal: 2
SignalValue:    2

Ссылки

  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.14/2 Обработка сигналов <signal.h> (стр: 194-195)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.14/2 Обработка сигналов <signal.h> (стр: 265)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.14/2 Обработка сигналов <signal.h> (стр: 246)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
  • 4.7 SIGNAL HANDLING <signal.h>

Смотрите также

устанавливает обработчик сигнала для конкретного сигнала
(функция)
C++ documentation для sig_atomic_t