Funkcja signal () w C ++ ustawia obsługę błędu dla określonego sygnału.
signal () Prototyp
void (* signal (int sig, void (* func) (int))) (int);
signal
Funkcja definiuje metodę obsługi sygnału. Obsługę sygnału można ustawić tak, aby wykonywana była jedna z następujących czynności:
- Domyślna obsługa sygnału.
- Zignoruj sygnał.
- Do obsługi sygnału wywoływana jest funkcja zdefiniowana przez użytkownika.
Jest zdefiniowany w pliku nagłówkowym "> plik nagłówkowy.
signal () Parametry
- sig: Sygnał do obsłużenia przez program obsługi sygnału. Może przyjąć jedną z następujących wartości:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- handler: program obsługi sygnału, który obsługuje sygnał. Może to być jeden z następujących:
- SIG_DFL: obsługa domyślna.
- SIG_IGN: Zignoruj sygnał.
- Wskaźnik do funkcji: funkcja zdefiniowana przez użytkownika do obsługi sygnału. Podpis funkcji musi być równoważny z:
void fun (int sig);
signal () Wartość zwracana
Po pomyślnym zakończeniu zwraca poprzednią obsługę sygnału, aw przypadku niepowodzenia zwracany jest SIG_ERR.
Przykład: Jak działa funkcja 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; )
Po uruchomieniu programu wynik będzie następujący:
Sygnał jest obsługiwany