linux中C语言获取高精度时钟gettimeofday函数
原文地址::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函数相关推荐
- Linux绘图函数与驱动,Linux中与驱动相关的ioctl函数
一: ioctl函数的作用 ioctl用于向设备发控制和配置命令 ,有些命令也需要读写一些数据,但这些数据是不能用read/write读写的,称为Out-of-band数据.也就是说,read/ ...
- linux中i2c的ioctl,write,read函数的使用
一.ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I ...
- linux中strlen的用法,实现strlen()函数,strcmp()函数 const知识点
实现strlen()函数,strcmp()函数 const知识点 发布时间:2020-08-03 05:49:13 来源:51CTO 阅读:576 作者:汇天下豪杰 1.strlen()函数的实现:# ...
- 摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了
ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I2 ...
- linux 创建进程 execl,linux中进程的vfork()和execl()函数
看我下面的程序,还有问题可以baidu hi我 #include #include #include #include int main(int argc, const char *argv[]) { ...
- Linux中main是如何执行的
Linux中main是如何执行的 这是一个看似简单的问题,但是要从Linux底层一点点研究问题比较多.找到了一遍研究这个问题的文章,但可能比较老了,还是在x86机器上进行的测试. 原文链接 开始 问题 ...
- linux下后缀为so的文件怎么打开,linux中.so后缀的文件怎么使用啊
参考1:http://zhidao.baidu.com/link?url=Zx0t6DMIpPvMNhIKZEudJOmDR4MXcr-B5_KbELCIoNz1jnJ7A_--J-qIaiVkYIi ...
- Linux中的两个经典宏定义:获取结构体成员地址,根据成员地址获得结构体地址;Linux中双向链表的经典实现。...
倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offse ...
- linux中lockf的例子,小何讲Linux: 文件锁及其实例
1. 文件锁基本概念 Linux中软件.硬件资源都是文件(一切皆文件),文件在多用户环境中是可共享的. 文件锁是用于解决资源的共享使用的一种机制:当多个用户需要共享一个文件时,Linux通常采用的方 ...
最新文章
- 简单ajax类, 比较小, 只用ajax功能时, 可以考虑它
- why some product does not have Note assignment block
- codeforces:812(div2):总结
- BootCDNApi使用记录
- VMware虚拟机下安装Ubuntu16.04镜像完整教程
- WEB安全基础-Javascrp相关知识点之BOM
- ASP.NET企业开发框架IsLine FrameWork系列之二--命名空间与契约
- MySQLBackup 8.0.26 备份与恢复
- oracle 存储过程 胡勇,Oracle SQL:经典查询练手第二篇
- 把地图中的道路以线条提取出来_自动驾驶中基于车道线的高清制图方法回顾
- UI设计素材干货|日历也要设计,模板都给你们整理好了
- Java - PhantomJS + EChartsConvert实现ECharts图片保存到服务端
- Qt实现的局域网通信软件(仿QQ版本)
- 防止backspace键后退网页
- 拼接字符串并以逗号隔开
- 项目时间(概念、活动定义、活动排序)(笔记)
- 【VUE】在vue中使用google地图
- flask开发桌面应用程序_使用Microsoft Authenticatio将多个破折号应用程序嵌入Flask中...
- 什么是TTO热转印色带?
- gitlab镜像仓库设置及自动同步代码到服务器实现方式
热门文章
- 联想Thinkpad T480 电脑 Hackintosh 黑苹果efi引导文件
- 基于SSM酒店管理系统
- matlab仿真的英文文献,matlab 外文翻译 外文文献 英文文献 MATALAB 混合仿真平台控制算法的概述...
- 计算机启动读取硬件配置信息,开机自检画面如何查看电脑硬件配置信息
- Greenplum 优化 - 分布式键,重建索引,序列
- 无觅科技分析:如何通过WhatsApp云手机,抢滩海外私域运营市场
- RabbitMQ实战指南之RabbitMQ架构及运转流程
- IPP库的安装以及源码分析方法
- 葵花宝典第二招:突破单峰密集
- 在没有源码的情况下修改.class文件