在Linux中,可以使用nanosleep函数来实现精确的休眠。nanosleep函数可以让线程休眠指定的纳秒数,确保休眠时长精确。
下面是一个使用nanosleep函数实现精确休眠的示例代码:
#include <stdio.h>
#include <time.h>
int main() {
struct timespec req, rem;
// 设置需要休眠的时间为1秒
req.tv_sec = 1;
req.tv_nsec = 0;
// 使用nanosleep函数进行休眠
if (nanosleep(&req, &rem) == -1) {
printf("nanosleep failed\n");
return 1;
}
printf("Slept for 1 second\n");
return 0;
}
在这个示例中,首先定义了一个timespec结构体req,用来指定需要休眠的时间。然后调用nanosleep函数,将req作为参数传递给它,使得程序休眠指定的时间。如果nanosleep函数返回-1,说明休眠失败,程序将返回1;否则打印"Slept for 1 second"表示休眠成功。
需要注意的是,nanosleep函数的第一个参数是一个指向struct timespec结构体的指针,因此在调用时需要使用&符号来获取结构体的地址。nanosleep函数的返回值为0表示成功,-1表示失败。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读:如何在Linux下使用gettimeofday精确计时