在基于linux的C编程中,经常会看到 struct timeval和struct timespec 这两个跟时间有关的结构体,有时候会容易混淆,先看下这两个结构体的定义,以linux-2.6.35为例,在time.h下

struct timeval {__kernel_time_t          tv_sec;     /* seconds */__kernel_suseconds_t   tv_usec;    /* microseconds */
};struct timespec {__kernel_time_t      tv_sec;         /* seconds */long               tv_nsec;        /* nanoseconds */
};

进一步查找_kernel_time_t 的含义 可知这两个结构体的内容如下:

struct timeval {long tv_sec;     /* seconds */long   tv_usec;    /* microseconds */
};struct timespec {long tv_sec;         /* seconds */long   tv_nsec;        /* nanoseconds */
};

小结:

1、struct timeval 的成员,一个是秒,一个是微秒,所以最高精度是 微秒。

2、struct timespec 的成员,一个是秒,一个是纳秒,所以最高精度是 纳秒。 

常见应用场景:

1、struct timeval 一般由函数

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

获取系统时间。

2、struct timespec 一般由函数

int clock_gettime(clockid_t, struct timespec *)

获取特定时钟的时间。

struct timeval 和 struct timespec 应用小结相关推荐

  1. 结构体struct timeval 和 struct timespec的定义

    结构体struct timeval 和 struct timespec的定义均在头文件<sys/time.h>中,具体定义如下: struct timeval {long tv_sec; ...

  2. struct timeval 和 struct timespec

    1. 使用timeval,微秒级(1s = 1 000ms = 1 000 000us = 1 000 000 000ns) struct timeval {long tv_sec; //second ...

  3. Linux时间相关知识小结:struct timeval、timespec、gettimeofday、time、localtime....

    前言 我们在linux平台进行开发时,时间相关的操作基本上都会遇到,本文就对常用的时间相关的结构体.接口进行分析小结. 常见类型.结构体定义 timespec 原型 struct timespec { ...

  4. Linux高精度struct timespec和struct timeval

    1. 结构基本定义 1.1 struct timespec 定义 typedef long time_t; #ifndef _TIMESPEC #define _TIMESPEC struct tim ...

  5. Linux高精度struct timespec 和 struct timeval

    struct timespec now_ts;clock_gettime(CLOCK_MONOTONIC, &now_ts);printf("os tick times, %ld s ...

  6. struct timespec 和 struct timeval

    struct timespec 和 struct timeval time()提供了秒级的精确度 . 1.头文件 <time.h> 2.函数原型 time_t time(time_t * ...

  7. struct timeval用法与时间溢出问题

    1.用法 高精度计算时间的结构体struct timeval. 头文件是sys/time.h 网上查找的定义是 #include "sys/time.h"struct timeva ...

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

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

  9. struct timeval的处理(timeval比较及相减)

    timeval结构体的处理函数 timeval的大小比较 timeval转为double类型的秒 两个timeval类型之间的时间差 函数耗时测试 timeval的大小比较 /************ ...

最新文章

  1. usaco A game
  2. 用python画玫瑰花代码-python绘制玫瑰的实现代码
  3. JVM - Class常量池 || 运行时常量池
  4. CentOS 6.7构建 OpenResty(Nginx)+PHP 7(php-fpm)+MySQL5.7 运行环境
  5. matlab从哪里学,从零开始学MATLAB(附光盘)/从零开始学系列
  6. 架设 DNF(地下城与勇士) 三分钟搭建
  7. C语言 枚举——熄灯问题
  8. 依图科技(北京)计算机视觉算法实习生面经-2020年10月
  9. 2017 iOS最新面试题汇总(二)
  10. 找不到网络路径计算机共享,win10 局域网共享问题 提示0x80070035 找不到网络路径...
  11. 深度学习(五):对对联,根据上联,对下联
  12. 超简单的C++去重、排序
  13. uniapp 解决onReachBottom失效
  14. 【转】关于linux中wps出现系统字体缺失的解决方法
  15. html设定列的最小宽度,设置Grid Layout列最小宽度的方法
  16. FossaSat-1开源卫星
  17. 薛定谔 | 先导化合物优化与相互作用可视化
  18. 工作汇报ppt案例_美国苹果公司内部年终汇报PPT曝光!网友:职场范十足,学习了...
  19. 用Spring构建企业Java应用程序
  20. mysql存储过程查询结果分页并返回总记录数

热门文章

  1. android性能优化和内存优化面试,看懂这些帮你轻松解决就业问题
  2. ESP8266配网并将IP显示至oled液晶屏 ESP8266远程连接服务器控制灯或继电器
  3. 离婚时婚后父母出资所购房屋分割规则
  4. 【读书笔记】:cs231n(image classification notes)
  5. 九阴真经全文(转载)
  6. strerror(errno)函数
  7. [C++杂谈]:MD5以及XML数字签名
  8. 算法学习笔记——数据结构:哈夫曼树、带权路径长度WPL、哈夫曼编码
  9. 怎么给09淘宝店增加附加价值
  10. java x轴 左正_Java总结篇系列:Java泛型