Signál C ++ () - standardní knihovna C ++

Funkce signal () v C ++ nastavuje obslužnou rutinu chyby pro zadaný signál.

signál () Prototyp

 void (* signal (int sig, void (* func) (int))) (int);

signalFunkce definuje metodu pro zpracování signálu. Obsluhu signálu lze nastavit tak, aby byla provedena jedna z následujících akcí:

  • Výchozí zpracování signálu.
  • Signál ignorujte.
  • Pro zpracování signálu je volána uživatelem definovaná funkce.

Je definován v hlavičkovém souboru.

signal () Parametry

  • sig: Signál zpracovávaný obsluhou signálu. Může nabývat jedné z následujících hodnot:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: Obsluha signálu, která zpracovává signál. Může to být jedna z následujících možností:
    • SIG_DFL: Výchozí zpracování.
    • SIG_IGN: Ignorovat signál.
    • Ukazatel na funkci: Uživatelem definovaná funkce pro zpracování signálu. Podpis funkce musí být ekvivalentní následujícímu:
       void fun (int sig);

signal () Návratová hodnota

Při úspěchu vrátí předchozí obsluhu signálu a při selhání se vrátí SIG_ERR.

Příklad: Jak funguje funkce signal ()

 #include #include using namespace std; sig_atomic_t signalled = 0; void handler(int sig) ( signalled = 1; ) int main() ( signal(SIGINT, handler); raise(SIGINT); if (signalled) cout << "Signal is handled"; else cout << "Signal is not handled"; return 0; )

Když spustíte program, výstup bude:

 Signál je zpracován

Zajímavé články...