Funkce signal () v C ++ nastavuje obslužnou rutinu chyby pro zadaný signál.
signál () Prototyp
void (* signal (int sig, void (* func) (int))) (int);
signal
Funkce 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