linux 模擬實現my sleep的兩個版本

2021-07-31 07:07:21 字數 617 閱讀 8339

1.既然要講sleep,那麼大家就有必要了解一下什麼是訊號。

訊號:是unix程序間通訊的一種標準方式。

訊號的產生:1.鍵盤快捷鍵

2.異常

3.作業系統命令和函式

4.鬧鐘

訊號的數量:64種,1-31是普通訊號,34-64是是時時訊號

my_sleep版本one(有bug):

#include #include #include #include void handler(int sig)

{}int mysleep(int seconds)

int main()

return 0;

}

my_sleep版本two:

#include #include #include #include void handler(int sig)

{}int mysleep(int seconds)

int main()

return 0;

}

第乙個sleep版本的bug是它是不可重入的,第二個版本改進了,利用訊號遮蔽,將mysleep變成了可重入函式。

Linux 訊號 模擬實現sleep

1 產生訊號 產生訊號的3種方式 1 呼叫系統函式 kill raise abort 2 軟體異常行為 3 組合鍵 ctrl c ctrl d ctrl 等 處理訊號的3種方式 1 忽略。2 預設 很多情況下是終止 3 自定義 訊號捕捉 訊號在核心中的表示 1 遞達 執行訊號的處理動作稱為訊號遞達 ...

linux 模擬實現sleep函式

功能 將程序掛起一段時間 函式原型 include unsigned int sleep unsigned int seconds n秒 來舉乙個很簡單的栗子 執行以上 後,輸出結果如下 每隔一秒列印一次,這就是sleep函式的作用。那麼如何自己模擬實現sleep呢?先介紹一些我們會用到的函式 作用...

模擬實現Spring IOC

通過在類上標註 registration 註冊進容器,injection從容器注入物件 容器類 public class springcontainer else bean.setbeanclass c mappropsmap new hashmap 處理注入屬性 field props c.get...