C ++ signal () - C ++ Standard Library

Funkcja signal () w C ++ ustawia obsługę błędu dla określonego sygnału.

signal () Prototyp

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

signalFunkcja 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

Interesujące artykuły...