在C语言中,可以使用nanosleep
函数来实现微秒级的延时。nanosleep
函数的原型如下:
int nanosleep(const struct timespec *req, struct timespec *rem);
其中,req
是一个指向timespec
结构的指针,用来指定要延时的时间;rem
是一个指向timespec
结构的指针,用来存储剩余的未休眠时间(如果调用被信号中断时)。timespec
结构定义如下:
struct timespec {
time_t tv_sec; // 秒
long tv_nsec; // 纳秒
};
下面是一个使用nanosleep
函数实现微秒级延时的示例代码:
#include <time.h>
void usleep(unsigned int microseconds) {
struct timespec req;
struct timespec rem;
req.tv_sec = microseconds / 1000000;
req.tv_nsec = (microseconds % 1000000) * 1000;
nanosleep(&req, &rem);
}
int main() {
usleep(1000); // 延时1微秒
return 0;
}
在上面的示例代码中,usleep
函数封装了nanosleep
函数,用来实现微秒级的延时。在main
函数中调用usleep
函数来实现延时1微秒。