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