C語言alarm()函式:設定訊號傳送鬧鐘

2puT發表於2016-07-23
相關函式:signal, sleep

標頭檔案:#include <unistd.h>

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

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

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

範例
#include <unistd.h>
#include <signal.h>
void handler()
{
    printf("hello\n");
}

main()
{
    int i;
    signal(SIGALRM, handler);
    alarm(5);
    for(i = 1; i < 7; i++)
    {
        printf("sleep %d ...\n", i);
        sleep(1);
    }
}

執行:
sleep 1 ...
sleep 2 ...
sleep 3 ...
sleep 4 ...
sleep 5 ...hello
sleep 6 ...

相關文章