linux之睡眠函数(my_sleep)
生活随笔
收集整理的這篇文章主要介紹了
linux之睡眠函数(my_sleep)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們在程序中,很多次用到sleep()函數,讓它睡眠幾秒后再執行該進程。今天呢,我要給大家實現一下sleep函數。
看看代碼哦:
運行結果:
結果中每隔三秒鐘,打印一條語句。實現了sleep(3)的功能。
關于sleep函數,在這里,我們首先讓主函數調用了my_sleep函數,my_sleep函數又調用了注冊處理函數,注冊了一個SIGALRM的信號;然后為其設置鬧鐘,看主函數中的my_sleep函數要睡眠多長時間,調用pause等待,那么什么時候處理信號呢?此時,在用戶態由于接收到的信號將其保存起來,使其處于未決狀態,進入內核態處理異常,再回到用戶態執行SIGALRM信號處理函數,信號處理函數返回時執行特殊的系統調用再次進入內核,處理完異常回用戶態,從中斷的嚇一條指令開始執行。當捕捉到信號之后pause返回-1,再調用alarm(0)清空鬧鐘,調用sigaction恢復SIGALRM信號以前的處理動作。
外附一張圖哈:(很重要哦)
比較短小,歡迎來訪哦~~
總結
以上是生活随笔為你收集整理的linux之睡眠函数(my_sleep)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dnf70第二季第二章续篇力驱和武神刷图
- 下一篇: Linux下如何设置权限让用户只删除自己