Funkcia signal () v C ++ nastavuje obslužnú rutinu chýb pre zadaný signál.
signál () prototyp
void (* signal (int sig, void (* func) (int))) (int);
signal
Funkcia definuje metódu pre spracovanie signálu. Obsluhu signálu je možné nastaviť tak, aby sa vykonala jedna z nasledujúcich akcií:
- Predvolené spracovanie signálu.
- Signál ignorujte.
- Na spracovanie signálu sa volá užívateľom definovaná funkcia.
Je definované v hlavičkovom súbore.
signal () Parametre
- sig: Signál spracovávaný obsluhou signálu. Môže mať jednu z nasledujúcich hodnôt:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- handler: Handler signálu, ktorý spracováva signál. Môže to byť jedna z nasledujúcich možností:
- SIG_DFL: Predvolené spracovanie.
- SIG_IGN: Ignorujte signál.
- Ukazovateľ na funkciu: Užívateľom definovaná funkcia na spracovanie signálu. Podpis funkcie musí byť rovnocenný s týmto:
void fun (int sig);
signal () Návratová hodnota
Pri úspechu vráti predchádzajúci obsluhujúci signál a pri zlyhaní sa vráti SIG_ERR.
Príklad: Ako funguje funkcia 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 spustení programu bude výstup:
Signál je spracovaný