Linux 訊號詳解三(sleep,raise)

2021-09-08 12:16:36 字數 903 閱讀 9245

sleep()函式

1.sleep()函式作用:讓程序睡眠

2.能被訊號打斷,然後處理訊號函式以後,就不再睡眠,直接向下執行**

3.sleep函式的返回值是剩餘秒數

//

sleep 函式

#include #include

#include

#include

#include

#include

#include

#include

void catch_signal(int

sign)

}int main(int arg,char *args)

int num=0

; num=sleep(100

);

//手動執行 ctrl+c 程序被喚醒

if(num>0

)

//說明:sleep()函式是可中斷睡眠

printf(

"新的測試!\n");

//再次設計sleep()函式,讓其sleep需要的時間

num=15

;

dowhile

(num);

printf(

"game over!\n");

return0;

}

int raise(int

sig)

--給自己傳送訊號,raise(sig)等價於kill(getpid(),sig)

killpg

--給程序組傳送訊號,killpg(pgrp,sig)等價於kill(-pgrp,sig)

sigqueue

--給程序傳送訊號,支援排隊,可以附帶資訊

Linux 訊號 模擬實現sleep

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

Linux 利用訊號實現sleep函式

在另一篇文章linux訊號中,介紹了訊號的產生與處理方式,以及一系列訊號集函式的使用。本文使用訊號機制,模擬實現sleep函式並了解競態條件。在此之前先介紹一波需要用到的函式。sigaction函式 include int sigaction int signum,const struct siga...

訊號之sleep函式

include unsigned int sleep unsigned int seconds 返回值 0或未休眠夠的秒數 此函式使呼叫程序被掛起,直到滿足以下條件之一 1 已經過了seconds所指定的牆上時鐘時間。2 呼叫程序捕捉到乙個訊號並從訊號處理程式返回。如果alarm訊號一樣,由於其他系...