gettimeofday

获取当前时钟, 它的精度可以达到微妙

头文件

#include<sys/time.h>

函数原型

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

函数说明

gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中

struct timeval {
    long tv_sec; //秒
    long tv_usec; // 微秒
}

struct timezone {
    int tz_minuteswest; /*和greenwich 时间差了多少分钟*/
    int tz_dsttime; /*type of DST correction*/
}

在gettimeofday()函数中tv或者tz都可以为空。如果为空则就不返回其对应的结构体

注意
1.精确级别,微妙级别
2.受系统时间修改影响
3.返回的秒数是从1970年1月1日0时0分0秒开始

返回值

成功则返回0,失败返回-1,错误代码存于errno。

范例

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

int main() {
    struct timeval tv;
    if (-1 == gettimeofday(&tv, NULL)){
        perror("gettimeofday()");
        return 1;
    }
    printf("tv_sec = %ld\n", tv.tv_sec);
    printf("tv_usec = %d\n", tv.tv_usec);
}

执行

bogon:time xqhero$ ./gettimeofday
tv_sec = 1611762086
tv_usec = 943974
文档更新时间: 2021-01-28 23:49   作者:周国强