一、struct timeval结构体

struct timeval结构体在time.h中的定义为:

  1. struct timeval
  2. {
  3. __time_t tv_sec;        /* Seconds. */
  4. __suseconds_t tv_usec;  /* Microseconds. */
  5. };

其中,tv_sec为Epoch到创建struct timeval时的秒数,tv_usec为微秒数,即秒后面的零头。比如当前我写博文时的tv_sec为1244770435,tv_usec为442388,即当前时间距Epoch时间1244770435秒,442388微秒。需要注意的是,因为循环过程,新建结构体变量等过程需消耗部分时间,我们作下面的运算时会得到如下结果:

  1. #include <sys/time.h>
  2. #include <stdio.h>
  3. int
  4. main(void)
  5. {
  6. int i;
  7. struct timeval tv;
  8. for(i = 0; i < 4; i++){
  9. gettimeofday(&tv, NULL);
  10. printf("%d\t%d\n", tv.tv_usec, tv.tv_sec);
  11. sleep(1);
  12. }
  13. return 0;
  14. }
  1. 329612 1314851429
  2. 329782 1314851430
  3. 329911 1314851431
  4. 330036 1314851432

前面为微秒数,后面为秒数,可以看出,在这个简单运算中,只能精确到小数点后面一到两位,或者可以看出,每进行一次循环,均需花费0.005秒的时间,用这个程序来作计时器显然是不行的,除非精确计算产生的代码消耗时间。

二、gettimeofday()函数

原型:

  1. /* Get the current time of day and timezone information,
  2. putting it into *TV and *TZ. If TZ is NULL, *TZ is not filled.
  3. Returns 0 on success, -1 on errors.
  4. NOTE: This form of timezone information is obsolete.
  5. Use the functions and variables declared in <time.h> instead. */
  6. extern int gettimeofday (struct timeval *__restrict __tv,
  7. __timezone_ptr_t __tz) __THROW __nonnull ((1));

gettimeofday()功能是得到当前时间和时区,分别写到tv和tz中,如果tz为NULL则不向tz写入。

struct timeval结构体 以及 gettimeofday()函数相关推荐

  1. struct timeval结构体 以及 gettimeofday()函数、struct timespec结构体

    struct timeval结构体 struct timeval结构体在time.h中的定义为: struct timeval { __time_t tv_sec; /* Seconds. */ __ ...

  2. linux系统中struct timeval结构体、struct timezone结构体以及gettimeofday函数

    格林尼治时间.协调世界时 间.世界时间.日光节约时间以及时区等介绍: 格林尼治时间(Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台当地的标准时间,因为本初子午 ...

  3. struct timeval结构体

    struct timeval结构体在time.h中的定义为: struct timeval { __time_t tv_sec;        /* Seconds. */ __suseconds_t ...

  4. struct timeval 结构体使用浅析

    时间结构体struct timeval的使用 #include <sys/time.h> 该头文件的位置在:/usr/include/x86_64-linux-gnu/sys/time.h ...

  5. timeval结构体的应用

    timeval结构体的简单应用 timeval定义 作为计时器 timeval定义 timeval是Linux系统中定义的用于保存时间的结构体,在time.h中的定义为: struct timeval ...

  6. struct结构体扩展-成员函数

    struct结构体扩展-成员函数 在C++中,允许在结构中定义函数,该函数被称为成员函数,描述形式如下: struct 结构名{数据成员成员函数 } 例题描述: 输入n个学生的信息,每个学生信息包括姓 ...

  7. c语言结构体作为形参是否加struct_(struct)结构体变量作为函数参数调用的方法小结...

    结构体变量作为函数参数传递的3种方法将一个结构体变量中的数据传递给另一个函数,有下列3种方法:用结构体变量名作参数.一般较少用这种方法.用指向结构体变量 结构体变量.结构指针变量.结构数组作为函数的参 ...

  8. linux 中 timeval结构体 - Neddy11 - 博客园

    linux 中 timeval结构体 - Neddy11 - 博客园 linux 中 timeval结构体 网上很多人写到,timeval结构解释错误 ************************ ...

  9. timeval结构体的使用

    今天在在学习过程中遇到一个结构体timeval,不是很了解它用法,现在简单的总结一下: struct timeval {        time_t tv_sec;  /*seconds, 秒*/ S ...

最新文章

  1. Red Hat Enteripse Linux5下配置yum源的方法
  2. python定义匿名函数关键字_python语言的匿名函数、7种可调用对象以及用户定义的可调用类型...
  3. Pandas图表自定义数据格式
  4. 技术人必看:15张图对比高效与瞎忙的区别!
  5. 开源计算机集群监控Ganglia应用视频
  6. 批处理等待上一条完成再执行下面的_分布式批处理实现方案
  7. (62)FPGA面试题-用verilog写一段代码,实现消除一个glitch(毛刺)(一)
  8. Xception: DeepLearning with Depthwise Separable Convolutions2017Google【论文理解】
  9. 51单片机控制步进电机正反转
  10. Java网络编程IO模型 --- BIO、NIO、AIO详解
  11. WIN2008R2激活工具
  12. 二维vector初始化方法
  13. html显示千分位及小数位,使用CSS格式化数字(小数位,千位分隔符等)
  14. word 中的背景图片(浮动图形)怎么批量删除
  15. 引用论坛、社区、问答系统的区别
  16. api接口—闲鱼搜索的数据
  17. 关于win10无限重启的解决方案
  18. 中国伸缩式起重机行业市场供需与战略研究报告
  19. 对List<Map>数据排序
  20. 微信小程序——new Date()显示NAN + 正则表达式

热门文章

  1. python爬虫实际应用_如何使用python爬虫论坛?
  2. mave工程中的一个类调用另一个聚合工程的一个类_求求你,别再写上千行的类了好吗...
  3. python调试神器_你必须拥有的Python调试神器
  4. python函数可变参数_python中函数的可变参数
  5. 笨方法“学习python笔记之关键字
  6. Spark streaming 概述
  7. phpcmsV9支付: 支付宝支付配置 (资源汇总)
  8. phpcmsV9 公告内容(图片不显示问题)
  9. phpcms v9 sql数据{$r[content]},前端如何换行显示?
  10. Swagger:后端文档生成工具