(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语言计时器涉及对C语言标准库中时间管理函数的理解,以及根据具体需求选择合适的时间获取方法。通过这个计时器,开发者可以在测试代码性能或进行定时任务时获得准确的时间信息。
在本文中,我们将深入探讨如何使用C语言编写一个倒计时器程序。C语言是一种强大的、低级的编程语言,适合构建系统级和性能敏感的应用程序。倒计时器是日常生活中常见的一种实用工具,它可以帮助用户跟踪时间,通常...
Linux 下 C 语言编程中的计时器 在 Linux 操作系统中,时间概念和计时器的使用是非常重要的。在 C 语言编程中,我们需要了解时间的表示、时间的测量和计时器的使用。 时间表示是指程序中对系统当前时间的输出。...
这个计数器利用了定时器和外部中断的功能,以8号键作为开始/结束计时的触发器,C号键用于重置计时器到零。由于示例的限制,计时上限设定为15秒。 首先,我们需要了解单片机的基础知识。单片机是一种集成了微处理器...
C语言计时程序是通过使用C语言来实现一个简单的计时器,主要用于记录时间的流逝。下面是该程序的设计思想和实现细节: 首先,定义了一个时间结构体`struct tm`,其中包括小时、分钟、秒和10毫秒四个成员变量。然后...
"51单片机秒表计时器课程设计报告(含C语言程序)课程设计" 该课程设计的目的是设计一个秒表计时器,采用51单片机实现,电路包括单片机最小系统部分、数码管显示部分、摁键开关部分。秒表计时器可以实现“开始”、...
本项目是用C语言编写的一款电子时钟计时器,它提供了时间显示和计时功能,是学习C语言编程的一个很好的实践案例。 首先,我们来了解一下C语言的基本概念。C语言是一种结构化编程语言,它的语法简洁明了,允许直接...
C语言计时和随机数的获取 本资源摘要信息涵盖了C语言中的计时和随机数获取两方面的内容。下面将对每个部分的知识点进行详细的解释。 一、获取系统运行的时间(ms) 在C语言中,可以使用GetTickCount函数来获取...
"辩论赛计时器"是一款专为辩论比赛设计的计时工具,其主要功能是帮助组织者精确控制比赛时间,确保各个环节按时进行。这款计时器是基于Delphi编程语言开发的,Delphi是一种强大的面向对象的编程环境,以其高效、易用...
C语言,计数器
本文将介绍如何在C语言程序中实现计时器,以限制老鼠偷奶酪的时间,并探讨计时器在游戏中的应用。 在编程游戏中,尤其是像老鼠偷奶酪这样的策略游戏中,时间管理是一个重要的组成部分。通过在程序中添加计时器,可以...
这个压缩包文件主要讲述了8255A作为计时器应用的实例,结合C语言编程进行详细讲解。 8255A具有三个8位的数据端口:Port A、Port B和Port C,以及控制端口。其中,Port C可以被配置为输入或输出,而Port A和Port B则...
C语言+easyx库实现图形化扫雷游戏,附带排行榜和计时器,支持自定义难度与预设的三个难度,附带全部图像资源,注解详细,解压即可使用,欢迎初学者下载
在本文中,我们将深入探讨如何使用51单片机,结合C语言来设计并实现一个篮球计时器。51单片机因其简单易用、性价比高而广泛应用于嵌入式系统开发,而C语言则因其强大的功能和广泛的适用性成为编写单片机程序的首选...
139-实用99分钟倒计时器(51单片机C语言实例Proteus仿真和代码)139-实用99分钟倒计时器(51单片机C语言实例Proteus仿真和代码)139-实用99分钟倒计时器(51单片机C语言实例Proteus仿真和代码)139-实用99分钟倒计时器(51...
自己开发的,很垃圾的计时器,能够倒计时,还有秒表,在黑白屏里运行
单片机c语言编写的60秒设置内任意时间倒计时程序。
足球世界杯倒计时器、奥运会倒计时器的源代码分析 在本篇文章中,我们将对足球世界杯倒计时器和奥运会倒计时器的源代码进行分析,并对其技术实现进行解读。 倒计时器的技术实现 倒计时器是一种常见的网页组件,...
在电子毫秒表计时器程序系统中,我们主要探讨的是使用C语言开发的一个功能丰富的计时工具。这个系统不仅支持毫秒级别的精确计时,还具备秒级计时功能,同时提供了倒计时模式。当设定的时间到达时,系统会触发蜂鸣器...