(1)my_time.h
#ifndef MY_TIME_H_
#define MY_TIME_H_
typedef struct time_manager_t time_manager_t;
struct time_manager_t
{
void (*set_clock)(time_manager_t *this);
void (*cal_clock)(time_manager_t *this,char *where);
void (*destroy)(time_manager_t *this);
};
time_manager_t *create_time_manager();
#endif
(2)my_time.c
#include "my_time.h"
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <malloc.h>
#include <sys/time.h>
//设置时间打印到的文件
#define MY_TIME_PATH "/root/time.txt"
typedef struct private_time_manager_t private_time_manager_t;
struct private_time_manager_t
{
time_manager_t public;
FILE *file;
struct timeval start;
struct timeval end;
};
void set_clock(private_time_manager_t *this)
{
gettimeofday(&this->start,NULL);
}
void cal_clock(private_time_manager_t *this,char *where)
{
double timeuse;
gettimeofday(&this->end,NULL);
//计算相隔时间,多减去3微妙,由于测试3微妙微计算的时间
timeuse = 1000000 * (this->end.tv_sec-this-> start.tv_sec ) + this->end.tv_usec-this->start.tv_usec-3;
timeuse /= 1000000;
fprintf(this->file,"%s:%f\n",where,timeuse);
}
void destroy(private_time_manager_t *this)
{
fclose(this->file);
free(this);
}
time_manager_t *create_time_manager()
{
private_time_manager_t *this=(private_time_manager_t *)malloc(sizeof(private_time_manager_t));
this->file=fopen(MY_TIME_PATH,"a+");
if(this->file==NULL)
{
printf("file open fail\n");
return NULL;
}
this->public.set_clock=(void (*)(time_manager_t *))set_clock;
this->public.cal_clock=(void (*)(time_manager_t *,char *))cal_clock;
this->public.destroy=(void (*)(time_manager_t *))destroy;
return &this->public;
}
void main()
{
time_manager_t *this=create_time_manager();
this->set_clock(this); //设置开始时间点
this->cal_clock(this,"a"); //设置结束时间点
}
分享到:
相关推荐
这是一个用C语言写的计时器,精确到秒了,希望对大家有用
linux下c语言编程1-18\Linux下C语言编——计时器.doc
用C做的一个小型倒计时器,输入时间将实现倒计时操作。
C语言计时和随机数的获取,还有斐波那契数列哦
实现秒表计数功能,使用定时器和外部中断实现。8号按键代表计时开始/结束,C号按键代表重置为0,为了演示方便,这里上限定为15秒。
51单片机秒表计时器课程设计报告(含C语言程序)课程设计
C语言,计数器
C语言+easyx库实现图形化扫雷游戏,附带排行榜和计时器,支持自定义难度与预设的三个难度,附带全部图像资源,注解详细,解压即可使用,欢迎初学者下载
一款经典的电子时钟计时器,由C语言编写,附有源码,多谢支持!
基于51单片机的篮球计时器(C语言实现)。基于51单片机的篮球计时器(C语言实现)。基于51单片机的篮球计时器(C语言实现)。
139-实用99分钟倒计时器(51单片机C语言实例Proteus仿真和代码)139-实用99分钟倒计时器(51单片机C语言实例Proteus仿真和代码)139-实用99分钟倒计时器(51单片机C语言实例Proteus仿真和代码)139-实用99分钟倒计时器(51...
单机操作。操作比较简单,可以进行字体和颜色设置。-,Delphi,教育系统应用
自己开发的,很垃圾的计时器,能够倒计时,还有秒表,在黑白屏里运行
单片机c语言编写的60秒设置内任意时间倒计时程序。
倒计时 这是用C语言编写的一个简单的计时工具; 可以插在其他较大的程序中
8255的一个应用,有详细的问题分析、程序框图,有编程部分,好的话回来支持一下哈
Linux下C语言编程--时间概念,包括时间表示,时间测量,计时器的使用三部分内容。仅供参考。
139实用99分钟倒计时器单片机C语言源码.zip项目程序C语言源码下载139实用99分钟倒计时器单片机C语言源码.zip项目程序C语言源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合单片机公司开发项目...
C语言定时器,窗体计时,时间到时弹出窗口提示
倒计时器,里面有程序和论文,程序我调试过并且已经成功