我已閱讀關於在Linux進程中的信號處理。我使用的是centOS 7.1(內核3.10+)。我在我的C++程序中僅註冊處理程序SIGTERM。據我所知(不知道我的假設是否正確)。我們可以通過使用SigCgt字段掩碼來檢查進程在/proc/$ pid/status文件中偵聽的所有信號。我進程的的/ proc/$ PID /狀態顯示SigCgt領域如下: -SigCgt值在/ proc/<pid>/status文件中未得到更新?
SigCgt: 0000000184000200 ==> BitMask for this 0001 1000 0000 0000 0000 0100 0010 0000 0000
按我的知識,每個位對應於一個信號。因爲第15位對應於SIGTERM的位在上面的掩碼中是1
。它表示註冊了SIGTERM的信號處理程序。
我的問題是,SigCgt即使我沒有註冊任何信號處理程序,字段值保持不變。那麼如何設置幾個位包括第15位位(這是用於SIGTERM)SigCgt bitmask?
任何幫助,非常感謝。我已經做了足夠的搜索,但找不到合適的解釋。 此外,這將是一個很大的幫助如果任何人都可以指向我正確的文檔或鏈接。
在此先感謝。
非常感謝您在這裏糾正我。 :)現在所有的疑慮都很清楚。 :) – piyush