Aquí está el código en el que configuro mi controlador para la señal SIGABRT
y luego llamo al abort()
pero el manejador no recibe el trigered, en cambio el programa se cancela, ¿por qué?¿Cómo manejar la señal 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;
}
PROGRAMA DE SALIDA:
funciona perfectamente aquí, después de incluir ''. ¿Cual plataforma? –
Windows 7 x64 con MSVC++ 2010 (no es necesario incluir cstdlib en el estudio visual) – codekiddy
Bueno, el programa debe abortarse a menos que los manejadores de señal hagan un 'longjmp'. Si desea que el mensaje se imprima antes, es posible que desee eliminar 'std :: cout' (o escribir en' std :: cerr'). –