当前位置:  技术问答>linux和unix

gettimeofday 获取当前时间,是怎么计算间隔的 。

    来源: 互联网  发布时间:2016-08-14

    本文导语:  看到一计算程序执行时间的代码: 如:   gettimeofday (&now, NULL);        //获取当前时间   inow = (unsigned int)(now.tv_sec * 1000 + now.tv_usec / 1000 - 1136073600000); //这个时间算出来表示什么啊 红色的,是什么意思...

看到一计算程序执行时间的代码:
如:
  gettimeofday (&now, NULL);        //获取当前时间
  inow = (unsigned int)(now.tv_sec * 1000 + now.tv_usec / 1000 - 1136073600000); //这个时间算出来表示什么啊


红色的,是什么意思。。

|

#include 
#include 

int
main(int argc, char *argv[])
{
        time_t tick;
        struct tm *tp;
        char buf[80];

        tick = 1136073600;
        tp = gmtime(&tick);
        strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S", tp);
        printf("%sn", buf);

        return 0;
}
/*
 * 输出: 
 * 2006-01-01 00:00:00
 * 也就是说在计算现在距离上述时间的毫秒数。
 * 但是算法有问题,因为32位整数存不了这个数1136073600000,在32位平台下long也是32位,所以程序写
 * 不怎么样。其实可以改为
 * ((now.tv_sec - 1136073600)* 1000 + now.tv_usec / 1000),
 * 但是这么写也就能计算24天多一点的毫秒数,超过这个时间就会出错
 * 2147483647 / 1000 / 3600 / 24 = 24.85 (天)
 * 所以还是建议保存gettimeofday返回的struct timeval类型,然后再进行计算。
 * 或者用int64_t保存结果。
 */


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教:gettimeofday遇到问题
  • 关于gettimeofday() 函数的奇怪问题
  • gettimeofday函数奇特的时光倒转现象
  • gettimeofday 系统调用能精确到多少?
  • 我用gettimeofday()函数,取得的时区是不是/etc/localtime所设的时区?
  • 关于gettimeofday差4398秒的问题?
  • 为什么我在Linux使用gettimeofday会报未定义的错???
  • gettimeofday()为什么会出现段错误
  • Linux定时器问题,使用ITIMER_REAL实现系统调用gettimeofday()所实现的功能时出错,请教各位!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3