• 获取Linux时间函数


    Linux下clock_gettime函数详解

    要包含这头文件<time.h>

    且在编译链接时需加上 -lrt ;因为在librt中实现了clock_gettime函数。

    ---

    struct timespec ts;

    clock_gettime(CLOCK_MONOTONIC,ts);

    printf("%d %d",ts.tv_sec, ts.tv_nsec);打印出来的时间跟 cat /proc/uptime第一个参数一样

    /proc/uptime里面的两个数字分别表示: 
    the uptime of the system (seconds), and the amount of time spent inidle process (seconds).

    把第一个数读出来,那就是从系统启动至今的时间,单位是秒

    Middleware对POSIX提供的标准计时器API进行封装,主要提供了两种类型的时钟的封装。一种是CLOCK_REALTIME,另一种是CLOCK_MONOTONIC。对与man手册的解释是:
    CLOCK_REALTIME: Systemwide realtime clock. 系统范围内的实时时钟。
    CLOCK_MONOTONIC:Represents monotonic time. Cannot be set.表示单调时间,不能被设置的。

    手册中解释的比较笼统。我个人的理解是:
    CLOCK_REALTIME:这种类型的时钟可以反映wall clocktime,用的是绝对时间,当系统的时钟源被改变,或者系统管理员重置了系统时间之后,这种类型的时钟可以
    得到相应的调整,也就是说,系统时间影响这种类型的timer。
    CLOCK_MONOTONIC:用的是相对时间,他的时间是通过jiffies值来计算的。该时钟不受系统时钟源的影响,只受jiffies值的影响。

    建议使用:
    CLOCK_MONOTONIC这种时钟更加稳定,不受系统时钟的影响。如果想反映wall clocktime,就使用CLOCK_REALTIME。

    clock_gettime比gettimeofday更加精确

     

    clock_gettime( )提供了纳秒的精确度,给程序计时可是不错哦; 

  • 相关阅读:
    Oracle基础知识整理
    linux下yum安装redis以及使用
    mybatis 学习四 源码分析 mybatis如何执行的一条sql
    mybatis 学习三 mapper xml 配置信息
    mybatis 学习二 conf xml 配置信息
    mybatis 学习一 总体概述
    oracle sql 语句 示例
    jdbc 新认识
    eclipse tomcat 无法加载导入的web项目,There are no resources that can be added or removed from the server. .
    一些常用算法(持续更新)
  • 原文地址:https://www.cnblogs.com/senior-engineer/p/8144974.html
Copyright © 2020-2023  润新知