C語(yǔ)言的sleep、usleep、nanosleep等休眠函數(shù)怎么用

小億
195
2024-02-23 17:24:34

在C語(yǔ)言中,可以使用以下幾種函數(shù)來(lái)實(shí)現(xiàn)休眠功能:

  1. sleep函數(shù):sleep函數(shù)是最基本的休眠函數(shù),它接受一個(gè)以秒為單位的參數(shù),程序?qū)?huì)在指定秒數(shù)后繼續(xù)執(zhí)行。例如:
#include <unistd.h>

int main() {
    printf("Sleeping for 3 seconds...\n");
    sleep(3);
    printf("Awake now!\n");
    return 0;
}
  1. usleep函數(shù):usleep函數(shù)是一個(gè)微秒級(jí)別的休眠函數(shù),它接受一個(gè)以微秒為單位的參數(shù),程序?qū)?huì)在指定微秒數(shù)后繼續(xù)執(zhí)行。例如:
#include <unistd.h>

int main() {
    printf("Sleeping for 500 milliseconds...\n");
    usleep(500000);
    printf("Awake now!\n");
    return 0;
}
  1. nanosleep函數(shù):nanosleep函數(shù)可以提供更精確的休眠時(shí)間,它接受一個(gè)timespec結(jié)構(gòu)體作為參數(shù),其中包含秒和納秒兩部分。例如:
#include <time.h>

int main() {
    struct timespec ts = {2, 500000000}; // 2.5秒
    printf("Sleeping for 2.5 seconds...\n");
    nanosleep(&ts, NULL);
    printf("Awake now!\n");
    return 0;
}

需要注意的是,以上函數(shù)都需要包含相應(yīng)的頭文件,并且在使用時(shí)應(yīng)該注意參數(shù)的單位和精度。

0