0
我在我的程序的信号处理程序,看起来像这样:与平台无关的方式转换成信号的数字为字符串
void signalHandler(int sig)
{
BOOST_LOG_SEV(logger, fatal) << "Received signal " << sig;
gQuit = true;
}
目前这产生这样的输出:
接收信号2
但我想看到的是类似于
接收信号SIGINT
我大概可以用strsignal(sig)
,其中should work on POSIX.1-2008 systems取代的sig
输出。该解决方案是在这太问题讨论:
然而,在我的情况,我想避免引入特定于平台的代码。
是否boost
或标准库提供了解决此问题的方法?
对信号处理程序可以做什么存在严格限制,我不确定记录到文件是否是其中之一。如果这就是代码的作用。无论如何,你可以简单地在表格中查找信号ID。 –
@ Cheersandhth.-Alf谢谢,我不知道有限制。 – arman
http://stackoverflow.com/questions/16891019/how-to-avoid-using-printf-in-a-signal-handler –