中断系统调用
中斷系統(tǒng)調(diào)用
系統(tǒng)調(diào)用可分為兩類:慢速系統(tǒng)調(diào)用和其他系統(tǒng)調(diào)用。
結(jié)合pause,回顧慢速系統(tǒng)調(diào)用:
慢速系統(tǒng)調(diào)用被中斷的相關(guān)行為,實(shí)際上就是pause的行為: 如,read
① 想中斷pause,信號不能被屏蔽。
② 信號的處理方式必須是捕捉 (默認(rèn)、忽略都不可以)
③ 中斷后返回-1, 設(shè)置errno為EINTR(表“被信號中斷”)
可修改sa_flags參數(shù)來設(shè)置被信號中斷后系統(tǒng)調(diào)用是否重啟。SA_INTERRURT不重啟。 SA_RESTART重啟。
擴(kuò)展了解:
sa_flags還有很多可選參數(shù),適用于不同情況。如:捕捉到信號后,在執(zhí)行捕捉函數(shù)期間,不希望自動阻塞該信號,可將sa_flags設(shè)置為SA_NODEFER,除非sa_mask中包含該信號。
轉(zhuǎn)載于:https://www.cnblogs.com/lr1402585172/p/10563884.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: 可重入函数
- 下一篇: 操作系统【二】死锁问题以及处理方法