Linux下获取时间函数gettimeofday()

16 篇文章 0 订阅
选择gettimeofday()函数的原因:精度比timer()函数高很多,time函数只精确到秒,而gettimeofday精确到微妙,足以满足各种所需,虽然有精度比它更高的,但是它的系统调用开销相对更小

函数原型

#include<sys/time.h>
int gettimeofday(struct timeval* tv, struct timezone* tz);

成功返回0, 失败返回-1, 出错返回errno

参数意义

  • tv是指向下面这个结构体的一个指针
struct timeval 
{
    time_t tv_sec;
    suseconds_t tv_usec;
}

time_t 和suseconds_t 都是lont int 类型, tv_sec 表示Epoch 秒数, 而tv_usec 是额外的微妙精度

  • tz 是一个历史产物, 早期的UNIX实现用来获取系统的时区信息, 目前已经被废弃了, 应始终将其置为NULL.

示例

#include <sys/time.h>
#include <iostream>
using namespace std;

int main() 
{
    struct timeval tv;
    gettimeofday(&tv, nullptr);

    cout << "seconds since 00:00:00, 1 Jan 1970 UTC: " << tv.tv_sec << endl;
    cout << "Additional microsecondsss: " << tv.tv_usec << endl;
}
lzj@lzj-PC:~$ ./a.out
seconds since 00:00:00, 1 Jan 1970 UTC: 1533287671
Additional microsecondsss: 161258
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值