在Ubuntu系統下,可以使用C語言編寫一個簡單的程序來測試usleep
函數的準確性
#include<stdio.h>
#include <unistd.h>
#include <time.h>
int main() {
struct timespec start, end;
long sleep_time = 100000; // 100ms
// 獲取開始時間
clock_gettime(CLOCK_MONOTONIC, &start);
// 調用usleep函數
usleep(sleep_time);
// 獲取結束時間
clock_gettime(CLOCK_MONOTONIC, &end);
// 計算實際睡眠時間(以微秒為單位)
long actual_sleep_time = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_nsec - start.tv_nsec) / 1000;
printf("Requested sleep time: %ld microseconds\n", sleep_time);
printf("Actual sleep time: %ld microseconds\n", actual_sleep_time);
return 0;
}
編譯并運行此程序:
gcc -o usleep_test usleep_test.c
./usleep_test
程序將輸出請求的睡眠時間和實際睡眠時間。請注意,usleep
函數的精度可能受到操作系統和硬件的限制,因此實際睡眠時間可能略高于請求的睡眠時間。