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