Namespaces
Variants

sig_atomic_t

From cppreference.net
Défini dans l'en-tête <signal.h>
typedef /* unspecified */ sig_atomic_t ;

Un type entier qui peut être accédé comme une entité atomique même en présence d'interruptions asynchrones effectuées par des signaux.

Exemple

#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);
}

Sortie possible :

SignalValue:    0
Sending signal: 2
SignalValue:    2

Références

  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.14/2 Gestion des signaux <signal.h> (p: 194-195)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.14/2 Gestion des signaux <signal.h> (p: 265)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.14/2 Gestion des signaux <signal.h> (p: 246)
  • Norme C89/C90 (ISO/IEC 9899:1990) :
  • 4.7 SIGNAL HANDLING <signal.h>

Voir aussi

définit un gestionnaire de signal pour un signal particulier
(fonction)
Documentation C++ pour sig_atomic_t