在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