溫馨提示×

c語言定時器程序怎么編寫

小億
175
2024-03-16 17:37:15
欄目: 編程語言

在C語言中,可以使用signal函數(shù)來設(shè)置定時器。下面是一個簡單的定時器程序示例:

#include <stdio.h>
#include <signal.h>
#include <unistd.h>

void timer_handler(int signum)
{
    printf("Timer expired!\n");
}

int main()
{
    signal(SIGALRM, timer_handler);

    // 設(shè)置定時器,間隔為1秒
    alarm(1);

    // 主程序繼續(xù)執(zhí)行
    while (1)
    {
        printf("Main program is running...\n");
        sleep(1);
    }

    return 0;
}

在上面的例子中,我們首先定義了一個名為timer_handler的函數(shù),用于處理定時器超時事件。然后在main函數(shù)中使用signal函數(shù)注冊SIGALRM信號的處理函數(shù)為timer_handler。接著調(diào)用alarm函數(shù)設(shè)置定時器,這里設(shè)置定時器的間隔為1秒。最后在一個while循環(huán)中,不斷打印"Main program is running…",同時通過sleep函數(shù)暫停程序1秒。

當(dāng)定時器超時后,會觸發(fā)SIGALRM信號,從而執(zhí)行timer_handler函數(shù)中的內(nèi)容,即打印"Timer expired!"。然后程序會繼續(xù)執(zhí)行while循環(huán)中的代碼。

需要注意的是,定時器的精度受系統(tǒng)的調(diào)度和負(fù)載情況的影響,可能會有一定的誤差。

0