alarm[鬧鐘函式]

alarm[鬧鐘函式]

alarm也稱為鬧鐘函式,它可以在進程中設定一個定時器,當定時器指定的時間到時,它向進程傳送SIGALRM信號。可以設定忽略或者不捕獲此信號,如果採用默認方式其動作是終止調用該alarm函式的進程。

基本信息

Linux C

alarm函式

要注意的是,一個進程只能有一個鬧鐘時間,如果在調用alarm之前已設定過鬧鐘時間,則任何以前的鬧鐘時間都被新值所代替。需要注意的是,經過指定的秒數後,信號由核心產生,由於進程調度的延遲,所以進程得到控制從而能夠處理該信號還需要一些時間。

如果有以前為進程登記的尚未逾時的鬧鐘時鐘,而且本次調用的seconds值是0,則取消以前的鬧鐘時鐘,其餘留值仍作為alarm函式的返回值。

所需頭檔案

#include<unistd.h>

函式原型

unsigned int alarm(unsigned int seconds);

函式參數

seconds:指定秒數

函式返回值

成功:如果調用此alarm()前,進程已經設定了鬧鐘時間,則返回上一個鬧鐘時間的剩餘時間,否則返回0。

出錯:-1

程式示例

該示例完成了一個簡單的sleep函式的功能,由於SIGALRM默認的系統動作為終止該進程,因此在程式調用pause之後,程式就終止了。

#include<unistd.h>

#include<stdio.h>

#include<stdlib.h>

int main(void){

alarm(50);

int ret;

sleep(30);

ret=alarm(10);

printf("%d\n",ret);

pause();

return 0;

}

程式輸出:

先等待30秒 再輸出20 等待10秒列印出鬧鐘

相關詞條

相關搜尋

熱門詞條