alarm(設定訊號傳送鬧鐘)

2021-06-06 23:21:35 字數 864 閱讀 9403

alarm(設定訊號傳送鬧鐘)  

相關函式  signal,sleep

表頭檔案  #include

定義函式  unsigned int alarm(unsigned int seconds);

函式說明  alarm()用來設定訊號sigalrm在經過引數seconds指定的秒數後傳送給目前的程序。如果引數seconds 為0,則之前設定的鬧鐘會被取消,並將剩下的時間返回。

返回值  返回之前鬧鐘的剩餘秒數,如果之前未設鬧鐘則返回0。

**#include

#include

void handler() /*這段函式的執行時間不計算在for迴圈的時間之內*/

main()

} 結果:剛開始在main中執行一次,然後每隔5秒執行一次handler()

hello

sleep 1 ...

sleep 2 ...

sleep 3 ...

sleep 4 ...

sleep 5 ...

hello

sleep 6 ...

sleep 7 ...

sleep 8 ...

sleep 9 ...

sleep 10 ...

hello

sleep 11 ...

sleep 12 ...

sleep 13 ...

sleep 14 ...

sleep 15 ...

hello

sleep 16 ...

sleep 17 ...

sleep 18 ...

sleep 19 ...

sleep 20 ...

hello

設定訊號集和訊號遮蔽字

訊號遮蔽字是指乙個程序中當前阻塞而不能夠遞送給該程序的訊號集。訊號集則是乙個能表示多個訊號的集合的一種資料型別,為sigset t。include 下列四個函式成功返回0,出錯返回 1 int sigemptyset sigset t set int sigfillset sigset t set ...

alarm訊號 select RTC定時器

include include void car handler int signo 設定5秒停止錄音 signal sigalrm,car handler alarm 5 設定定時5s原型 intselect int nfds,fd set readfds,fd set writefds,fd s...

使用alarm配合訊號實現sleep

author selfimpr blog mail lgg860911 yahoo.com.cn apue中描述solaris 9是使用alarm實現的sleep,其語義如下 如果在sleep之前有乙個未到期的alarm時鐘,則中斷時鐘 下面是乙個簡化的實現,語義為 如果sleep時發現已經有乙個a...