我有一个应用程序,可以用来捕捉任何分段错误或ctrl-c.
可能吗?
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);
}
handler是这样的.
void mysighandler()
{
MyfreeBuffers(); /*related to my applciation*/
}
对于分段故障信号,处理程序被多次调用,显然MyfreeBuffers()会给我释放已释放内存的错误.我只想自由一次,但仍然不想退出应用程序.
请帮忙.