文档章节

Unix/Linux系统下获得时间戳函数

宁宁爸
 宁宁爸
发布于 2016/09/23 09:10
字数 252
阅读 158
收藏 0

在Unix/Linux系统下,使用gettimeofday函数来获得当前系统的时间戳,精度可达到微秒(microsecond,即μs)级别。

通过结构体timeval来存放当前时间戳的信息:

#ifndef _STRUCT_TIMEVAL
#define _STRUCT_TIMEVAL        struct timeval
_STRUCT_TIMEVAL
{
    __darwin_time_t         tv_sec;         /* seconds */
    __darwin_suseconds_t    tv_usec;        /* and microseconds */
};
#endif /* _STRUCT_TIMEVAL */

其中,tv_sec用于存放当前时间戳的秒数,一般为long类型;tv_usec用于存放当前时间戳的微秒数,一般为int类型。

而这个结构体以及gettimeofday函数声明在<sys/time.h>头文件中。

下面举个例子:

#include <sys/time.h>

int main(void)
{
        struct timeval tBegin, tEnd;
        gettimeofday(&tBegin, NULL);

        int count = 0;
        
        for(int i = 0; i < 1000 * 1000; i++)
            count += i;
        
        gettimeofday(&tEnd, NULL);
        
        long deltaTime = 1000000L * (tEnd.tv_sec - tBegin.tv_sec ) + (tEnd.tv_usec - tBegin.tv_usec);

        printf("Time spent: %ldus\n", deltaTime);
}

上述代码中,gettimeofday(&tBegin, NULL)用于获得计算之前的时间戳;而gettimeofday(&tEnd, NULL)则用于获得计算之后的时间戳。然后deltaTime能得到两个时间戳之间相隔了多少微秒。最后将结果输出。

© 著作权归作者所有

宁宁爸
粉丝 82
博文 58
码字总数 26478
作品 0
高级程序员
私信 提问
php将标准字符串格式时间转换成unix时间戳_strtotime

php 将标准字符串格式时间转换成unix时间戳的函数为:strtotime函数(PHP 4, PHP 5)。 strtotime函数详细参考: strtotime — 将任何英文文本的日期时间描述解析为 Unix 时间戳. 函数格式说明:...

小星星程序员
2014/08/09
113
0
Unix时间戳(Unix timestamp)浅谈

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使...

xtfboy
2012/12/03
1K
0
C# DateTime 与UNIX时间戳转换

1311249000=2011-07-21 11:50:00: new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(1311249000).ToString("yyyy-MM-dd HH:mm:ss") from:http://code.aosoo.com/unixtime 如何在不同编程语......

Yamazaki
2012/07/09
15
0
MySQL:UNIX时间戳与日期的相互转换

在PHP+MySQL编程中,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储、处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候...

BENNEE
2011/03/31
299
0
[PHP|Smarty|Js]在URL中加入Unix时间戳防止web页面缓存

[PHP|Smarty|Js]在URL中加入Unix时间戳防止web页面缓存 2012 年 02 月 07 日 yezee PHP踩踩吧 一般web页面每次请求的url地址都一样, 很容易被浏览器本地或者网络设备缓存, 用户经常会抱怨为...

紫地瓜
2012/10/09
378
0

没有更多内容

加载失败,请刷新页面

加载更多

【运维】记一次上线前的紧急定位与修复-献上九条小经验

1 简介 本文介绍了作者所在团队在某次上线前测试发现问题、定位问题并修复上线的过程,最后给出几点经验总结,希望对大家有用。 2 过程 (1)今天需要上线,但昨晚才合并了所有分支,时间很紧...

南瓜慢说
37分钟前
4
0
Elasticsearch系列---初识Elasticsearch

Elasticsearch是什么? Elasticsearch简称ES,是一个基于Lucene构建的开源、分布式、Restful接口的全文搜索引擎,还是一个分布式文档数据库。天生就是分布式、高可用、可扩展的,可以在很短的...

清茶豆奶
49分钟前
3
0
服务安全之:JWT

JWT是JSON Web Tokens的缩写。既然叫JSON Web Tokens,所以JWT Tokens中真正包含的是多个JSON对象。为什么是多个JSON对象呢?因为SWT Token实际上是由三部分组成,其中有两部分是JSON格式。这...

popgis
今天
5
0
C++ Primer 笔记整理(一)基本语法介绍

C++被称为“完美的程序设计语言”,在chromium内核中应用非常广泛,之前没有系统学习过C++相关的知识,通过看书来学习相关的知识,现在将《C++ Primer》基本知识提取出来,供大家学习。 1.输...

天王盖地虎626
今天
2
0
你知道多少this,new,bind,call,apply?那我告诉你

那么什么是this,new,bind,call,apply呢?这些你都用过吗?掌握这些内容都是基础中的基础了。如果你不了解,那还不赶快去复习复习,上网查阅资料啥的! 通过call,apply,bind可以改变thi...

达达前端小酒馆
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部