在C語言中,usleep和nanosleep函數用于暫停程序的執行一段時間。
#include <unistd.h>
int usleep(useconds_t microseconds);
usleep函數會使程序暫停執行指定的微秒數。參數microseconds指定了暫停的時間,單位是微秒(百萬分之一秒)。
示例:
#include <stdio.h>
#include <unistd.h>
int main() {
printf("Before usleep\n");
usleep(2000000); // 暫停2秒
printf("After usleep\n");
return 0;
}
輸出:
Before usleep
[等待2秒]
After usleep
#include <time.h>
int nanosleep(const struct timespec *req, struct timespec *rem);
nanosleep函數會使程序暫停執行指定的納秒數。參數req是一個指向timespec結構體的指針,用來指定暫停的時間。參數rem是一個指向timespec結構體的指針,用來獲取未完成的暫停時間。
示例:
#include <stdio.h>
#include <time.h>
int main() {
printf("Before nanosleep\n");
struct timespec req;
req.tv_sec = 2; // 2秒
req.tv_nsec = 0; // 0納秒
nanosleep(&req, NULL); // 暫停2秒
printf("After nanosleep\n");
return 0;
}
輸出:
Before nanosleep
[等待2秒]
After nanosleep