linux中的信号2——进程如何处理信号?
生活随笔
收集整理的這篇文章主要介紹了
linux中的信号2——进程如何处理信号?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以下內容源于朱有鵬《物聯網大講堂》課程的學習整理,如有侵權,請告知刪除。
1、signal函數介紹
(1)舉例:用signal函數處理SIGINT信號(這個信號由ctrl+c時發出)
- 默認處理
- 忽略處理
- 捕獲處理
- signal函數綁定一個捕獲函數后,信號發生后會自動執行綁定的捕獲函數,并且把信號編號作為傳參傳給捕獲函數;
- signal的返回值在出錯時為SIG_ERR,綁定成功時返回信號之前綁定的舊的處理函數。(因為我們用signal為信號綁定了新的處理函數)
(2)signal函數的優點和缺點
- 簡單好用,捕獲信號常用;
- 綁定處理函數的這種方式,使用signal時,不同版本可能不同。
- 無法簡單直接得知之前設置的對信號的處理方法。
2、sigaction函數介紹
(1)兩個都是API,但sigaction比signal更具有可移植性
- sigaction可以單獨設置新的捕獲,或者單獨只獲取舊的捕獲函數(將新的傳參為NULL);
- signal函數不能單獨獲取舊的捕獲函數,必須設置新的捕獲函數,傳參后函數返回才獲取舊的捕獲函數。
(2)用法關鍵是2個sigaction指針
總結
以上是生活随笔為你收集整理的linux中的信号2——进程如何处理信号?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逆向工程入门
- 下一篇: linux 安装git失败,Linux运