鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

gettimeofday

函数功能

获取当前系统的时间,返回自1970年1月1日以来的秒数和微秒数。该函数适用于获取高精度的时间戳。

函数定义

int gettimeofday(struct timeval *tv, struct timezone *tz);

参数说明

参数名

描述

取值范围

输入/输出

tv

指向struct timeval的指针,返回当前时间的秒数和微秒数。

非空timeval结构体

输入/输出

tz

指向struct timezone的指针,通常在现代系统中不再使用,因此通常设为NULL。

NULL

输入

返回值

  • 成功:返回0。
  • 失败:对标开源Glibc,不返回特殊异常值。

gettimeofday提供的时间精度为微秒级。

示例

#include <stdio.h>
#include <sys/time.h>
#include <time.h>

int main() {
    struct timeval tv;
    struct timezone *tz;
    int seconds;
    float micros;
    tz = NULL;
    gettimeofday(&tv, tz);
    seconds = tv.tv_sec;
    micros = tv.tv_usec;
  
    printf("当前时间(秒数):%ld\n", seconds);
    double timestamp = seconds + micros / 1.0e6;
    printf("高精度时间戳(秒数和微秒数):%f\n", timestamp);
    return 0;
}

运行结果:

结果:
当前时间(秒数):***
高精度时间戳(秒数和微秒数):***