阅读量:0
在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表示失败。