Manejo de fallas de segmentación.

Tengo una aplicación que utilizo para detectar cualquier falla de segmentación o ctrl-c. Al usar el código de abajo, puedo detectar el error de segmentación pero se llama al manejador una y otra vez. ¿Cómo puedo detenerlos? Para su información, no quiero salir de mi aplicación. Solo puedo encargarme de liberar todos los buffers corruptos.

¿Es posible?

<code>void SignalInit(void )
{

struct sigaction sigIntHandler;

sigIntHandler.sa_handler = mysighandler;
sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, NULL);
sigaction(SIGSEGV, &sigIntHandler, NULL);

}
</code>

y el manejador va así.

<code>void mysighandler()
{
MyfreeBuffers(); /*related to my applciation*/
}
</code>

Aquí, para la señal de falla de Segmentación, se llama al controlador varias veces y, como es obvio, MyfreeBuffers () me da errores para liberar la memoria ya liberada. Solo quiero liberar una vez, pero todavía no quiero salir de la aplicación.

Por favor ayuda.

Respuestas a la pregunta(7)

Su respuesta a la pregunta