C ++ signal () - C ++ standardna knjižnica

Funkcija signal () u C ++ postavlja obrađivač pogrešaka za navedeni signal.

signal () Prototip

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

signalFunkcija definira metodu za obradu signala. Rukovatelj signalom može se postaviti tako da se izvrši jedna od sljedećih radnji:

  • Zadana obrada signala.
  • Zanemarite signal.
  • Korisnički definirana funkcija poziva se za upravljanje signalom.

Definirano je u datoteci zaglavlja "> datoteka zaglavlja.

parametri signala ()

  • sig: Signal kojim se rukuje obrađivač signala. Može uzeti jednu od sljedećih vrijednosti:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • ZNAK
    • SIGSEGV
    • SIGTERM
  • rukovatelj: rukovatelj signalom koji obrađuje signal. To može biti jedno od sljedećeg:
    • SIG_DFL: Zadano rukovanje.
    • SIG_IGN: Zanemarite signal.
    • Pokazivač na funkciju: Korisnički definirana funkcija za upravljanje signalom. Potpis funkcije mora biti ekvivalentan sljedećem:
       praznina zabava (int sig);

signal () Povratna vrijednost

Uspjehom vraća prethodni rukovatelj signalom, a u slučaju kvara vraća se SIG_ERR.

Primjer: Kako funkcionira signal () funkcija

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

Kada pokrenete program, izlaz će biti:

 Signal se obrađuje

Zanimljivi članci...