原文地址::https://blog.csdn.net/balingybj/article/details/48293817

相关文章

1、gettimeofday()函数的使用方法----https://www.cnblogs.com/zhangjiansheng/p/8215725.html

2、struct tm 和 time_t 时间和日期的使用方法----https://blog.csdn.net/u012260238/article/details/78961500

前言:
    在开发中,很多时候需要知道各个函数或者是某些设备对命令的操作用时,因此需要用到 gettimeofday 来获取当前时钟。

一,函数说明

#include

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

注意:
        1.精确级别,微妙级别
        2.受系统时间修改影响
        3.返回的秒数是从1970年1月1日0时0分0秒开始

其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果:

结构体timeval的定义为:
点击(此处)折叠或打开

struct timeval
    {
        long int tv_sec;     // 秒数
        long int tv_usec;     // 微秒数
    }
        它获得的时间精确到微秒(1e-6 s)量级

结构体timezone的定义为:
点击(此处)折叠或打开

struct timezone
    {
        int tz_minuteswest;/*格林威治时间往西方的时差*/
        int tz_dsttime;    /*DST 时间的修正方式*/
    }
        timezone 参数若不使用则传入NULL即可。
            其中 tz_dsttime 的值:
点击(此处)折叠或打开

DST_NONE /*不使用*/
    DST_USA /*美国*/
    DST_AUST /*澳洲*/
    DST_WET /*西欧*/
    DST_MET /*中欧*/
    DST_EET /*东欧*/
    DST_CAN /*加拿大*/
    DST_GB /*大不列颠*/
    DST_RUM /*罗马尼亚*/
    DST_TUR /*土耳其*/
    DST_AUSTALT /*澳洲(1986年以后)*/
        返回值
            成功则返回0,失败返回-1,错误代码存于errno。

ERRORS
           EFAULT One of tv or tz pointed outside the accessible address space.
           EINVAL Timezone (or something else) is invalid.

二,实例
点击(此处)折叠或打开 

1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <sys/time.h>
 5 int    time_substract(struct timeval *result, struct timeval *begin,struct timeval *end)
 6 {
 7     if(begin->tv_sec > end->tv_sec)    return -1;
 8     if((begin->tv_sec == end->tv_sec) && (begin->tv_usec > end->tv_usec))    return -2;
 9     result->tv_sec    = (end->tv_sec - begin->tv_sec);
10     result->tv_usec    = (end->tv_usec - begin->tv_usec);
11     
12     if(result->tv_usec < 0)
13     {
14         result->tv_sec--;
15         result->tv_usec += 1000000;
16     }
17     return 0;
18 }
19 int main(int argc, char **argv)
20 {
21     struct timeval start,stop,diff;
22     memset(&start,0,sizeof(struct timeval));
23     memset(&stop,0,sizeof(struct timeval));
24     memset(&diff,0,sizeof(struct timeval));
25     gettimeofday(&start,0);
26     //做你要做的事...
27     printf("hello world\n");
28     gettimeofday(&stop,0);
29     time_substract(&diff,&start,&stop);
30     printf("Total time : %d s,%d us\n",(int)diff.tv_sec,(int)diff.tv_usec);
31 }
   
操作结果:

转载自:http://blog.chinaunix.net/uid-28458801-id-4214306.html
————————————————
版权声明:本文为CSDN博主「balingybj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/balingybj/article/details/48293817

linux中C语言获取高精度时钟gettimeofday函数相关推荐

  1. Linux绘图函数与驱动,Linux中与驱动相关的ioctl函数

    一:    ioctl函数的作用 ioctl用于向设备发控制和配置命令 ,有些命令也需要读写一些数据,但这些数据是不能用read/write读写的,称为Out-of-band数据.也就是说,read/ ...

  2. linux中i2c的ioctl,write,read函数的使用

    一.ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I ...

  3. linux中strlen的用法,实现strlen()函数,strcmp()函数 const知识点

    实现strlen()函数,strcmp()函数 const知识点 发布时间:2020-08-03 05:49:13 来源:51CTO 阅读:576 作者:汇天下豪杰 1.strlen()函数的实现:# ...

  4. 摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了

    ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg);  cmd有I2C_SLAVE,I2 ...

  5. linux 创建进程 execl,linux中进程的vfork()和execl()函数

    看我下面的程序,还有问题可以baidu hi我 #include #include #include #include int main(int argc, const char *argv[]) { ...

  6. Linux中main是如何执行的

    Linux中main是如何执行的 这是一个看似简单的问题,但是要从Linux底层一点点研究问题比较多.找到了一遍研究这个问题的文章,但可能比较老了,还是在x86机器上进行的测试. 原文链接 开始 问题 ...

  7. linux下后缀为so的文件怎么打开,linux中.so后缀的文件怎么使用啊

    参考1:http://zhidao.baidu.com/link?url=Zx0t6DMIpPvMNhIKZEudJOmDR4MXcr-B5_KbELCIoNz1jnJ7A_--J-qIaiVkYIi ...

  8. Linux中的两个经典宏定义:获取结构体成员地址,根据成员地址获得结构体地址;Linux中双向链表的经典实现。...

    倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offse ...

  9. linux中lockf的例子,小何讲Linux: 文件锁及其实例

    1.  文件锁基本概念 Linux中软件.硬件资源都是文件(一切皆文件),文件在多用户环境中是可共享的. 文件锁是用于解决资源的共享使用的一种机制:当多个用户需要共享一个文件时,Linux通常采用的方 ...

最新文章

  1. 简单ajax类, 比较小, 只用ajax功能时, 可以考虑它
  2. why some product does not have Note assignment block
  3. codeforces:812(div2):总结
  4. BootCDNApi使用记录
  5. VMware虚拟机下安装Ubuntu16.04镜像完整教程
  6. WEB安全基础-Javascrp相关知识点之BOM
  7. ASP.NET企业开发框架IsLine FrameWork系列之二--命名空间与契约
  8. MySQLBackup 8.0.26 备份与恢复
  9. oracle 存储过程 胡勇,Oracle SQL:经典查询练手第二篇
  10. 把地图中的道路以线条提取出来_自动驾驶中基于车道线的高清制图方法回顾
  11. UI设计素材干货|日历也要设计,模板都给你们整理好了
  12. Java - PhantomJS + EChartsConvert实现ECharts图片保存到服务端
  13. Qt实现的局域网通信软件(仿QQ版本)
  14. 防止backspace键后退网页
  15. 拼接字符串并以逗号隔开
  16. 项目时间(概念、活动定义、活动排序)(笔记)
  17. 【VUE】在vue中使用google地图
  18. flask开发桌面应用程序_使用Microsoft Authenticatio将多个破折号应用程序嵌入Flask中...
  19. 什么是TTO热转印色带?
  20. gitlab镜像仓库设置及自动同步代码到服务器实现方式

热门文章

  1. 联想Thinkpad T480 电脑 Hackintosh 黑苹果efi引导文件
  2. 基于SSM酒店管理系统
  3. matlab仿真的英文文献,matlab 外文翻译 外文文献 英文文献 MATALAB 混合仿真平台控制算法的概述...
  4. 计算机启动读取硬件配置信息,开机自检画面如何查看电脑硬件配置信息
  5. Greenplum 优化 - 分布式键,重建索引,序列
  6. 无觅科技分析:如何通过WhatsApp云手机,抢滩海外私域运营市场
  7. RabbitMQ实战指南之RabbitMQ架构及运转流程
  8. IPP库的安装以及源码分析方法
  9. 葵花宝典第二招:突破单峰密集
  10. 在没有源码的情况下修改.class文件