在C语言中,我们经常需要设置一个时间周期。在这里,我们通过Timeval结构实现时间周期的设置。首先,我们介绍timeval,其定义如下(转载http://www.cnblogs.com/wainiwann/archive/2012/11/28/2792133.html):

"timeval是一个结构体,在time.h中定义为:

struct timeval

{

__time_t tv_sec;                /* Seconds. */

__suseconds_t tv_usec;      /* Microseconds. */

};

其中,tv_sec为Epoch(1970-1-1零点零分)到创建struct timeval时的秒数,tv_usec为微秒数,即秒后面的零头。"

Ok, 接下来我们通过如下代码实现周期设置:

-------------------------------------------------------------------------------------------------------------------------------------------

#include

#include

#include

int main()

{

int time_interval=3; // Set period to be 3s

printf("Testing start:\n");

while(1){

setPeriod(time_interval);

//You can add a method here to realize what you want to do in this period.

}

return 0;

}

void setPeriod(int time_interval){

static struct timeval tv1;

struct timeval tv2;

int time_in_us;

static int flag = 1;

gettimeofday(&tv2,NULL);

if(flag){

tv1.tv_sec = tv2.tv_sec;

tv1.tv_usec = tv2.tv_usec;

flag = 0;

return;

}

time_in_us = (tv2.tv_sec - tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec;

if(time_in_us >= time_interval * 1000000) {

tv1.tv_sec = tv2.tv_sec;

tv1.tv_usec = tv2.tv_usec;

// You can add a method here to make statistic about the data you get in this peorid.

printf("Hello, world\n");

}

}

---------------------------------------------------------------------------------------------------------------------------------------------

以上代码实现一个周期为3s的设置,执行结果为: 每隔三秒print一个“Hello world”.

注意,要实现每隔三秒print一个“Hello world”, sleep(3000) 会是一个更简便的方法。但是,用sleep方法,那么在该周期三秒内,只能sleep, 不能实现其他动作。

欢迎大家指正!

时间: 12-20

c语言设置周期的程序,C语言通过timeval结构设置周期相关推荐

  1. c语言编程 生理周期的程序,C语言程序设计100例之(9):生理周期

    例9    生理周期 问题描述 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为 23 天.28 天和33 天.每一个周期中有一天是高峰.在高峰这天,人会在相应的方面表现出色.例如 ...

  2. c语言经典解决实际程序,C语言经典教程1讲.ppt

    <C语言经典教程1讲.ppt>由会员分享,可在线阅读,更多相关<C语言经典教程1讲.ppt(48页珍藏版)>请在人人文库网上搜索. 1.C程序设计,主讲人:任祖华,2,本课程学 ...

  3. c语言查询日期应用程序,C语言时间操作

    UNIX操作系统根据计算机产生的年代和应用采用1970年1月1日作为UNIX的纪元时间,1970年1月1日0点作为计算机表示时间的是中间点,将从1970年1月1日开始经过的秒数用一个整数存放,这种高效 ...

  4. c语言课程设计加密程序,C语言课程设计文件加密解密.doc

    C语言课程设计文件加密解密 C语言程序设计 课程设计 学 院 计算机工程 班 级 计算1313 姓 名 学 号 201321121089 成 绩 指导老师 2014年6月26日 计算1313班C语言程 ...

  5. python是语言还是软件_程序开发语言之Python:是追逐还是坚守?

    Python作为计算机程序设计语言的其中一种,最初是被设计用于编写自动化脚本(shell),随着版本的不断更新.语言新功能的添加和机器学习的兴起,Python从2017年开始受到广泛关注. Pytho ...

  6. 用c语言做一个五子棋程序,C语言制作简单五子棋游戏

    原标题:C语言制作简单五子棋游戏 C语言制作简单的五子棋游戏 学习C语言的人很多,但是用C语言很少,而用来为自己所用,来做游戏的人就更少了,很多人都是跟着学校学习,学校讲到哪就坐到哪,但是以后却还是不 ...

  7. c语言怎么返回前一个程序,c语言return返回到哪

    c语言return返回到哪 c语言return,返回给了上一级,比如一个递归程序,从第三层返回到第二层:又比如一个普通的子程序,那就返回到主程序中去. 主程序中return返回给了操作系统. 比如下面 ...

  8. c语言随机抽取小程序_C语言整人小程序,慎用,谨记!

    整人啦!!! 哈喽~ 今天有位朋友留言问有没有比较有趣的C语言小程序? 想了想,给你写几个整人的小程序吧,有趣又好玩... 这里一共给你们准备了三个,分别起名为关机.死机.抖动,都给出了代码,整人指数 ...

  9. c语言指针地址交换程序,C语言-基础教程-指针的地址分配

    我们可以定义指针变量指向任何类型的变量.在上述的处理过程中,指针变量指向的变量通过传递变量的地址来实现.指针变量的取值是内存的地址,这个地址应当是安全的,不可以是随意的,否则,写入内存单元的值将会使得 ...

最新文章

  1. iOS UTI(统一类型标识)
  2. 陈松松:刚入门的视频营销新人,需要做哪些准备?
  3. 操作系统(五)CPU调度
  4. html中绑定一个字段,四、在html中绑定数据
  5. 分布式系统原理 之5 日志技术
  6. 初识ABP vNext(4):vue用户登录菜单权限
  7. CCKS 2018 | 最佳论文:南京大学提出 DSKG,将多层 RNN 用于知识图谱补全
  8. QT高级编程之QT基本概览
  9. MyBatisPlus学习
  10. pandas.DataFrame及xgboost代码示例
  11. RawData是Bayer转RGB格式代码分析和NEON单元加速方法
  12. mysql 处理转义'_mysql转义处理
  13. JS(fullpage)的使用
  14. VS2010的aspx文件中的html代码的格式化整理的方法
  15. Shodan搜索引擎使用技巧
  16. dx绘制2d图像_在DirectX 中进行2D渲染
  17. 【自然语言处理(NLP)】基于ERNIE语言模型的文本语义匹配
  18. 搜索趋势:微软必应新版集成AI和实时搜索
  19. kotlin android 4,Kotlin Android Extensions: 与 findViewById 说再见 (KAD 04)
  20. 在“互联网+”时代下,专为餐饮行业量身打造的智能管理系统!

热门文章

  1. 网红烟花加特林原创者发声,为什么会火?
  2. #ifdef vs #if defined 的差异
  3. 与XMLHTTP对象相关的名称
  4. Unity3d 学习与应用之 DEBUG
  5. 无数的教训,为什么要做一个好的甲方?
  6. IP子网划分与通配符掩码
  7. Webstorm 2020.3 安装 Emmet 插件
  8. 利用python进行数据分析(第二版)_第十四章
  9. python基础--列表、元组、字典和集合
  10. 【Unity编辑器扩展】显示资源目录下所有文件所占内存大小