Tag: 可重入

便携式捕获信号并向用户报告问题的方法

如果由于某些奇迹在我们的程序中发生了段错误,我想要捕获SIGSEGV并让用户(可能是GUI客户端)知道一个返回码,发生了严重的问题。 同时我想在命令行上显示信息以显示捕获的信号。 今天我们的信号处理程序如下所示: void catchSignal (int reason) { std :: cerr << "Caught a signal: " << reason << std::endl; exit (1); } 我可以听到上面的恐怖尖叫,正如我从这个post中读到的那样,从信号处理程序调用非重入函数是邪恶的。 是否有便携式方式处理信号并向用户提供信息? 编辑:或至少在POSIX框架内可移植?