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