温馨提示×

如何在C语言中正确使用nanosleep

小樊
109
2024-07-03 01:17:13
栏目: 编程语言
C语言开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C语言中,可以使用nanosleep函数来让程序休眠指定的时间。nanosleep函数的原型如下:

int nanosleep(const struct timespec *req, struct timespec *rem);

其中,req参数是一个指向timespec结构体的指针,结构体定义如下:

struct timespec {
    time_t tv_sec;  // 秒
    long tv_nsec;   // 纳秒
};

rem参数是一个指向timespec结构体的指针,用于返回未休眠完的时间。nanosleep函数会使当前线程休眠req参数指定的时间,如果时间未到,会返回-1并将剩余的休眠时间写入rem参数。

下面是一个使用nanosleep函数的示例代码:

#include <stdio.h>
#include <time.h>

int main() {
    struct timespec sleep_time, remaining_time;
    sleep_time.tv_sec = 1;  // 休眠1秒
    sleep_time.tv_nsec = 0; // 0纳秒

    if(nanosleep(&sleep_time, &remaining_time) == -1) {
        printf("Sleep interrupted. Remaining time: %ld seconds, %ld nanoseconds\n", remaining_time.tv_sec, remaining_time.tv_nsec);
    } else {
        printf("Slept for 1 second\n");
    }

    return 0;
}

在上面的代码中,程序会休眠1秒,如果休眠被中断,将会打印出剩余的休眠时间。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:如何在C语言中正确使用const

0