在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微秒。