在 Linux 系统中,获取当前时间戳(以秒为单位)的常用 如下:
**time()
**
include
time_t time(time_t *t);
time() 函数返回自 1970 年 1 月 1 日午夜 UTC 开始以来的秒数。如果 t 不为 NULL ,则函数还会将结果存储在指针 t 所指向的内存中。
**clock()
**
include
clock_t clock(void);
clock() 函数返回从某个固定时刻(称为 CLOCKS_PER_SEC)开始经过的时钟时间,单位是时钟周期。可以通过调用 CLOCKS_PER_SEC 来获取每秒的时钟周期数。
**gettimeofday()
**
include
int gettimeofday(struct timeval *tv, struct timezone *tz);
gettimeofday() 函数返回当前时间和时区信息。 tv 结构包含秒和微秒部分, tz 结构包含时区信息。
**ftime()
**
include
int ftime(struct timeb *tp);
ftime() 函数将当前时间和日期信息存储在 tp 结构中,包括秒、毫秒和时区信息。
**比较
**- time() 和 clock() 函数返回整数值,而 gettimeofday() 和 ftime() 函数返回结构。
- time() 和 ftime() 函数返回自 Unix 纪元(1970 年 1 月 1 日午夜 UTC)经过的秒数,而 clock() 和 gettimeofday() 函数返回经过的时钟周期数或时间间隔。
- gettimeofday() 函数具有较高的精度(微秒),而其他函数的精度通常为秒或毫秒。
**选择
**对于需要高精度时间戳的应用程序, ?????使用 gettimeofday() 函数。对于需要简单且足够准确的时间戳的应用程序,可以使用 time() 函数。