Funcția signal () din C ++ setează gestionarul de erori pentru semnalul specificat.
signal () Prototip
void (* signal (int sig, void (* func) (int))) (int);
signal
Funcția definește o metodă de a manipula semnalul. Manipulatorul de semnal poate fi setat astfel încât să se efectueze una dintre următoarele acțiuni:
- Manipulare implicită a semnalului.
- Ignorați semnalul.
- Funcția definită de utilizator este apelată pentru a gestiona semnalul.
Este definit în fișierul antet "> fișierul antet.
signal () Parametri
- sig: Semnalul de gestionat de către gestionarul de semnal. Poate lua una dintre următoarele valori:
- SIGABRT
- SIGFPE
- SIGILL
- SIGINT
- SIGSEGV
- SIGTERM
- handler: gestionarul semnalului care gestionează semnalul. Poate fi una dintre următoarele:
- SIG_DFL: Manipulare implicită.
- SIG_IGN: Ignorați semnalul.
- Pointer către o funcție: Funcție definită de utilizator pentru a gestiona semnalul. Semnătura funcției trebuie să fie echivalentă cu următoarea:
void fun (int sig);
signal () Valoare returnată
La succes, acesta returnează gestionarul de semnal anterior și la eșec este returnat SIG_ERR.
Exemplu: Cum funcționează funcția 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; )
Când rulați programul, ieșirea va fi:
Semnalul este tratat