Linux学习之系统编程篇:信号的基本概念
一、信號(hào)的特點(diǎn)
(1)簡(jiǎn)單。
(2)攜帶信息量少 。
(3)使用在某個(gè)特定的場(chǎng)景中(事先約定好)。
(4)優(yōu)先級(jí)最高。
不建議使用信號(hào)進(jìn)行進(jìn)程通信因?yàn)閮?yōu)先級(jí)高會(huì)打破原程序的執(zhí)行過(guò)程;能攜帶的數(shù)據(jù)過(guò)少。
二、信號(hào)的狀態(tài)
(1)產(chǎn)生:5 種方式(由內(nèi)核產(chǎn)生)。
(2)未決狀態(tài):沒有被處理(產(chǎn)生后,遞達(dá)前,由于某種原因被阻塞)。
(3)遞達(dá)狀態(tài):被處理(被忽略、執(zhí)行默認(rèn)動(dòng)作、被捕捉)。
三、信號(hào)產(chǎn)生方式
查看信號(hào) kill -l
(1)終端產(chǎn)生.。
(2)硬件異常信號(hào)。
(3)命令產(chǎn)生:kill -9 pid
(4)函數(shù)產(chǎn)生:
(5)軟條件產(chǎn)生(鬧鐘產(chǎn)生信號(hào)):
unsigned int alarm(unsigned int seconds); int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);四、信號(hào)默認(rèn)處理動(dòng)作:
(1)終止: Term
(2)忽略: Ign
(3)生成 core 文件: Core
(4)暫停: Stop
(5)繼續(xù): Cont
五、信號(hào)四要素
(1)信號(hào)名稱
(2)編號(hào)
(3)對(duì)應(yīng)事件(信號(hào)產(chǎn)生條件)
(4)默認(rèn)處理動(dòng)作
注意:
(1)信號(hào)的優(yōu)先級(jí)比較高(進(jìn)程收到信號(hào),暫停正在處理的工作,優(yōu)先處理信號(hào)后在繼續(xù)干)
(2)SIGKILL(9) 和 SIGSTOP(19) 不能被捕捉、不能被阻塞、不能被忽略
總結(jié)
以上是生活随笔為你收集整理的Linux学习之系统编程篇:信号的基本概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Linux学习之系统编程篇:利用 shm
- 下一篇: Linux学习之系统编程篇: 阻塞信号集