在上一篇文章《struct timeval 和 struct timespec 应用小结》我们分析了与linux系统时间相关的结构体定义,在linux系统C编程中,获取系统时间的api函数有两个,分别为:

int gettimeofday(struct timeval *tv, struct timezone *tz)int clock_gettime(clockid_t, struct timespec *)

我们逐个分析:

1、gettimeofday()

该函数把当前时间用 tv 结构体返回,当前时区的信息则放到tz所 指向的结构体。

我们在使用该函数时,第2个参数一般为空(NULL),因为 一般只需要获取当前时间, 而不用获取时区信息。

注意:返回的当前时间tv.tv_sec 是从1970年1月1日0 点开始的 “秒”数。

2、clock_gettime()

该函数是用于获取特定 时钟的时间,常用如下4种时钟:

CLOCK_REALTIME                  //系统当前时间,从1970年1.1日算起
CLOCK_MONOTONIC                 //系统的启动后运行时间,不能被设置
CLOCK_PROCESS_CPUTIME_ID        //本进程运行时间
CLOCK_THREAD_CPUTIME_ID         //本线程运行时间

我们经常用到的是CLOCK_REALTIME和CLOCK_MONOTONIC,其中CLOCK_REALTIME 跟 gettimeofday 返回的秒是一致的,都是相对于1970年1月1日的秒数。

区别:

1、clock_gettime 相比 gettimeofday的精度更高一些,前者精度到 纳秒,而后者精度到微秒。

2、clock_gettime可以通过 时钟选项而 得到不同参考下的时间,而gettimeofday则只有一种用途(获取当前系统时间)。

常规应用下,使用gettimeofday 即可获取 当前系统时间,对精度要求高,而且有不同需求的,可以使用clock_gettime。

gettimeofday() 和 clock_gettime()函数 分析小结相关推荐

  1. SylixOS下移植glib时clock_gettime函数分析

    1. 问题分析 移植glib中间件时,运行测试用例出现异常错误,定位问题为g_clock_gettime函数获取的时间和系统API获取的时间不一致导致. glib中间件中g_get_monotonic ...

  2. Linux下clock_gettime函数详解

    要包含这头文件<time.h> 且在编译链接时需加上 -lrt ;因为在librt中实现了clock_gettime函数. --- struct timespec ts; clock_ge ...

  3. linux C函数之strdup函数分析【转】

    本文转载自:http://blog.csdn.net/tigerjibo/article/details/12784823 linux C函数之strdup函数分析 一.函数分析 1.函数原型: [c ...

  4. 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | Class.cpp#findClassNoInit 函数 | DexFile.cpp#dexFindClass 函数分析 )

    文章目录 前言 一.Class.cpp#dvmDefineClass 函数分析 二.Class.cpp#findClassNoInit 函数分析 三.DexFile.cpp#dexFindClass ...

  5. 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | DexPathList#findClass 函数分析 | DexFile#loadClassBinaryName 函数 )

    文章目录 前言 一.DexPathList.java#findClass 类加载函数源码分析 二.DexFile.java#loadClassBinaryName 函数源码分析 前言 上一篇博客 [A ...

  6. 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexPathList 构造函数分析 | makeDexElements 函数分析 )

    文章目录 前言 一.DexPathList 构造函数分析 二.DexPathList.makeDexElements 函数分析 三.Element 类分析 前言 上一篇博客 [Android 逆向]整 ...

  7. 【Android 逆向】Android 逆向通用工具开发 ( adb forward 网络端口重定向命令 | PC 端逆向程序主函数分析 )

    文章目录 前言 一.adb forward 网络端口重定向命令 二.PC 端逆向程序主函数分析 前言 本篇博客重点分析 PC 端 hacktool 模块 ; 一.adb forward 网络端口重定向 ...

  8. 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具的 main 函数分析 )

    文章目录 一.注入流程 二.注入工具的 main 函数分析 一.注入流程 开始分析 [Android 逆向]Android 进程注入工具开发 ( 编译注入工具 | 编译结果文件说明 | 注入过程说明 ...

  9. 继承关系中的拷贝构造函数和赋值操作重载函数分析

    文章目录 1 继承关系中的拷贝构造函数和赋值操作重载函数分析 1 继承关系中的拷贝构造函数和赋值操作重载函数分析 在继承关系中,如果子类未实现拷贝构造函数,那么在子类进行拷贝构造操作时,会直接调用父类 ...

最新文章

  1. windows 下使用caffy_折腾下Windows下的Elasticsearch安装与使用
  2. 皮一皮:爱迪生看了流泪,特斯拉看了沉默...
  3. 学python心得体会1000字-学习python cgi的一点心得体会
  4. 网络编程学习笔记(gethostbyname2函数与IPv6支持)
  5. python 几种不同的格式化输出
  6. HDU - 3416 Marriage Match IV(最大流+最短路)
  7. linux查找所有字文件,Linux查找含有某字符串的所有文件
  8. unity3d双面材质_unity3d 模型怎么双面显示?
  9. 小米手环导出心率_这个功能有意思,小米11支持指纹检测心率,没有手环也不怕...
  10. 【2016年第3期】中国电信大数据应用实践
  11. linux串口 demo 解析原创 代码没有完全测试
  12. oracle 频繁 tm tx,oracle频繁出现TX/TM锁问题
  13. 算法求解方法与思路的总结
  14. 【数据库原理实验(openGauss)】完整性控制
  15. gba模拟器html5源码,酷!用 JS 做的 GBA 模拟器
  16. Matlab之四阶龙格—库塔法方法:解常微分初值问题
  17. Windows Azure AppFabric (一) 平台简介
  18. 在线协同编辑器Etherpad介绍与使用
  19. 最常用的美式英语1500句
  20. 2019六月广东省计算机二级报名,广东2019年3月全国计算机二级考试报名时间通知...

热门文章

  1. (华硕)笔记本电脑启动提示BOOTMEG is missing
  2. Joint Discriminative and Generative Learning for Person Re-identification
  3. C语言删除字符串的所有尾部空格
  4. 如何使用CubeMX创建STM32F105的程序
  5. poll, ppoll
  6. 白杨SEO:微信视频号怎么玩?推广、涨粉、上热门及赚钱技巧大全
  7. 怀揣巨资等了一季 陈天桥距门户野心咫尺之遥
  8. paper:DeepAR: Probabilistic forecasting with autoregressive recurrent networks DeepAR模型
  9. Java基于springboot +vue网上超市购物网站 多商家
  10. 【转】手机充电器原理