中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C語言定時器的使用方法是什么

小億
148
2023-12-14 16:32:36
欄目: 編程語言

C語言中使用定時器的方法有多種,其中常用的有以下幾種:

  1. 使用sleep函數:sleep函數可以讓程序暫停指定的時間,單位是秒。例如,要讓程序暫停2秒,可以使用sleep(2)函數。
#include <stdio.h>
#include <unistd.h>

int main() {
    printf("Start\n");
    sleep(2); // 暫停2秒
    printf("End\n");
    
    return 0;
}
  1. 使用usleep函數:usleep函數與sleep函數類似,但單位是微秒(1秒=1000000微秒)。例如,要讓程序暫停500毫秒,可以使用usleep(500000)函數。
#include <stdio.h>
#include <unistd.h>

int main() {
    printf("Start\n");
    usleep(500000); // 暫停500毫秒
    printf("End\n");
    
    return 0;
}
  1. 使用alarm函數:alarm函數可以在指定的時間后觸發一個信號。例如,要在5秒后觸發一個信號,可以使用alarm(5)函數。
#include <stdio.h>
#include <unistd.h>
#include <signal.h>

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

int main() {
    signal(SIGALRM, handler); // 注冊信號處理函數
    printf("Start\n");
    alarm(5); // 5秒后觸發信號
    sleep(10); // 等待10秒,以保證能收到信號
    printf("End\n");
    
    return 0;
}
  1. 使用setitimer函數:setitimer函數可以設置一個定時器,當定時器計時到達時,會觸發一個信號。例如,要在2秒后觸發一個信號,可以使用setitimer函數。
#include <stdio.h>
#include <sys/time.h>
#include <unistd.h>
#include <signal.h>

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

int main() {
    struct itimerval timer;
    timer.it_value.tv_sec = 2; // 定時器初始值為2秒
    timer.it_value.tv_usec = 0;
    timer.it_interval.tv_sec = 0; // 定時器間隔為0秒,即只觸發一次
    timer.it_interval.tv_usec = 0;
    
    signal(SIGALRM, handler); // 注冊信號處理函數
    printf("Start\n");
    setitimer(ITIMER_REAL, &timer, NULL); // 設置定時器
    sleep(5); // 等待5秒,以保證能收到信號
    printf("End\n");
    
    return 0;
}

以上是幾種常見的C語言中使用定時器的方法,具體使用哪種方法取決于需求和場景。

0
新昌县| 苍梧县| 桑植县| 辉南县| 贞丰县| 金山区| 资阳市| 南靖县| 公主岭市| 上蔡县| 宽甸| 龙胜| 隆化县| 东乡县| 罗平县| 辽阳市| 上虞市| 淮安市| 罗江县| 阿克| 攀枝花市| 海南省| 白城市| 北票市| 德惠市| 卓尼县| 永仁县| 太仓市| 维西| 雷州市| 兰西县| 德令哈市| 辽阳市| 稻城县| 茶陵县| 青冈县| 罗山县| 汉阴县| 万荣县| 临海市| 灵璧县|