2016-09-18 19 views
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輸出。該解決方案是在這太問題討論:

Signal number to name?

然而,在我的情況,我想避免引入特定於平臺的代碼。

是否boost或標準庫提供瞭解決此問題的方法?

+0

對信號處理程序可以做什麼存在嚴格限制,我不確定記錄到文件是否是其中之一。如果這就是代碼的作用。無論如何,你可以簡單地在表格中查找信號ID。 –

+0

@ Cheersandhth.-Alf謝謝,我不知道有限制。 – arman

+0

http://stackoverflow.com/questions/16891019/how-to-avoid-using-printf-in-a-signal-handler –

回答

0

那麼很難證明一個消極的,但我沒有找到任何網上的東西,並沒有得到答案,所以我認爲這是;

相關問題