Ecco il codice su cui ho impostato il mio gestore per il segnale SIGABRT
, quindi chiamo il abort()
ma il gestore non viene tratteggiato, invece il programma viene interrotto, perché?Come gestire il segnale SIGABRT?
#include <iostream>
#include <csignal>
using namespace std;
void Triger(int x)
{
cout << "Function triger" << endl;
}
int main()
{
signal(SIGABRT, Triger);
abort();
cin.ignore();
return 0;
}
PROGRAMMA DI USCITA:
Opere qui, dopo aver incluso ''. Quale piattaforma? –
Windows 7 x64 con MSVC++ 2010 (non è necessario includere cstdlib in visual studio) – codekiddy
Bene, il programma dovrebbe essere interrotto a meno che i gestori di segnale non eseguano un 'longjmp'. Se vuoi che il messaggio venga stampato prima, potresti voler scaricare 'std :: cout' (o scrivere in' std :: cerr'). –