clock_gettime(CLOCK_MONOTONIC, &ti);
是一个在 C 语言中用来获取当前单调时钟时间的函数调用。这里的 CLOCK_MONOTONIC
是指系统启动后经过的时间,不会因为系统时间的改变而改变,适合用于测量时间间隔。
示例代码
以下是一个简单的示例,展示如何使用 clock_gettime()
函数来计算某段代码执行所需的时间:
#include <stdio.h>
#include <time.h>
int main() {
struct timespec start, end;
// 获取开始时间
clock_gettime(CLOCK_MONOTONIC, &start);
// 在此处放置需要计时的代码块
for (volatile int i = 0; i < 100000000; ++i); // 示例:空循环
// 获取结束时间
clock_gettime(CLOCK_MONOTONIC, &end);
// 计算耗时
double elapsed = (end.tv_sec - start.tv_sec) +
(end.tv_nsec - start.tv_nsec) / 1e9;
printf("Elapsed time: %f seconds\n", elapsed);
return 0;
}
编译与运行
你可以通过以下命令编译并运行这个程序:
gcc example.c -o example -lrt
./example
注意事项
timespec
结构体包含两个成员:tv_sec
表示秒,tv_nsec
表示纳秒。- 使用
CLOCK_MONOTONIC
可以确保计时精度,但请注意它不能被用来获取实际的日期和时间,因为它只跟踪系统启动后的时间。 - 确保在链接时添加
-lrt
标志,以便使用实时库(对于某些平台)。
如果你有任何其他问题或需要进一步的信息,请告诉我!
内容由零声教学AI助手提供,问题来源于学员提问