基于笔记1的代码

#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <errno.h>
#include <error.h>
#include <unistd.h>
#include <sys/timerfd.h>#define ONE_BILLION   1000000000 // 1s
long long period_ns = 1000000; // 1000us == 1msint main(int argc, char *argv[])
{int err;struct timespec expected;struct itimerspec timer_conf;u_int64_t ticks;int tfd = timerfd_create(CLOCK_MONOTONIC, 0);if (tfd == -1)error(1, errno, "timerfd_create()"); elseprintf("timerfd_create success\n");err = clock_gettime(CLOCK_MONOTONIC, &expected);if (err)error(1, errno, "clock_gettime()"); elseprintf("clock_gettime success\n");printf("time %.2ld:%.2ld:%.2ld\n", expected.tv_sec / 3600,(expected.tv_sec / 60) % 60, expected.tv_sec % 60);/* start time: one millisecond from now. */expected.tv_nsec += period_ns;if (expected.tv_nsec > ONE_BILLION) {expected.tv_nsec -= ONE_BILLION;expected.tv_sec++;}     timer_conf.it_value = expected;timer_conf.it_interval.tv_sec = period_ns / ONE_BILLION;timer_conf.it_interval.tv_nsec = period_ns % ONE_BILLION;err = timerfd_settime(tfd, TFD_TIMER_ABSTIME, &timer_conf, NULL);if (err)error(1, errno, "timerfd_settime()");elseprintf("timerfd_settime success\n");// sleep(1);err = read(tfd, &ticks, sizeof(ticks));if (err < 0)error(1, errno, "read()");elseprintf("read value %lu\n", ticks);return 0;
}

执行完毕后, 结果如下

$ ./time_func_test
timerfd_create success
clock_gettime success
time 128:57:19
timerfd_settime success
read value 1

如果把 sleep(1)放开

$ ./time_func_test
timerfd_create success
clock_gettime success
time 128:58:00
timerfd_settime success
read value 1000

linux timerfd系列函数学习笔记2 获取超时次数相关推荐

  1. linux timerfd系列函数总结:timerfd.h

    Table of Contents 一.timerfd系列函数 (1)timerfd_create()函数 (2)timerfd_settime()函数 (3)timerfd_gettime()函数 ...

  2. Linux下面bzero函数学习笔记

    原型:extern void bzero(void *s, int n); 用法:#include <string.h> 功能:置字节字符串s的前n个字节为零. 说明:bzero无返回值. ...

  3. mysql入门很简单系列视频-学习笔记

    mysql入门很简单系列视频-学习笔记 视频链接:mysql入门很简单系列视频 https://www.bilibili.com/video/av14920200/ 以前主要就了解DDL.DML.DC ...

  4. 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记

    转载自: 九十分钟极速入门Linux--Linux Guide for Developments 学习笔记 http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA ...

  5. python3《机器学习实战系列》学习笔记----3.2 决策树实战

    前言 一.ID3算法构造决策树 1.1 背景 1.2 信息增益计算 1.3 递归生成决策树 二.使用Matplotlib注解绘制树形图 2.1 Matplotlib注解 2.2 构造注解树 三.测试和 ...

  6. 【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】

    目录 1.Linux内核输入子系统概念导入 1.1 输入设备工作机制 1.2 运行框架 1.3 分层思想 2.驱动开发步骤 2.1 在init()或probe()函数中 2.2 在exit()或rem ...

  7. Linux C编程一站式学习笔记2

    Linux C编程一站式学习笔记 chap2 常量.变量和表达式 本书以C99为标准 一.继续hello world 加入更多注释的hello world 可以用ctrl+(shift)+v复制到vi ...

  8. S32K系列S32K144学习笔记——LPIT0

    一用S32K144苦似海,道友,能不用,千万不去用. 本例程基以下如图所示接口操作,MCU为S32K144,开发平台S32DSworkspace 功能描述:开启LPIT0定时器,LED以0.5s时间间 ...

  9. MATLAB学习笔记#001 获取矩阵大小

    MATLAB学习笔记#001 获取矩阵大小 size 函数 语法 说明 示例 参考链接 size 函数 语法 [sz1,...,szN] = size(___) 说明 返回矩阵各个维度的长度 示例 [ ...

最新文章

  1. jquery ajax 与 flask 传输 json 并且 提取ajax数据作为全局变量
  2. 物理虚拟化服务器之间的KVM在线动态迁移
  3. Web Service属性介绍
  4. 深入理解Flask中的上下文
  5. [HDU] 1312Red and Black -用广搜求能探寻到的点的数目
  6. 东拉西扯:Facebook的身价
  7. Android坡度计
  8. c/c++教程 - 2.4.2.6 初始化列表语法,初始化列表参数
  9. c语言 ++ --运算符_C / C ++中的按位运算符
  10. Linux终端下输出二维码
  11. 终于有了MSDN上的Blog
  12. google glog 简单使用小结
  13. 北京内推 | 秘塔科技招聘NLP算法工程师(社招校招可转正实习)
  14. linux脚本编程for,谢烟客---------Linux之bash脚本编程---if补充和for循环
  15. 语雀文章导入CSDN
  16. 苹果终端date命令_mac终端常用命令
  17. mysql 索引加锁分析
  18. oppo系统android版本下载,oppo手机助手安卓版
  19. 麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程
  20. 佛曰:心底清净方为道

热门文章

  1. 基于asyncio编写一个telegram爬虫机器人
  2. 中国好同事!帮程序猿跟姑娘表白,他们组了一支乐队
  3. HTML5支持rpx,css小程序的元素尺寸单位px,rpx及rem
  4. scylladb源码安装过程
  5. 计算机光驱无法启用,win10系统没法启动光驱怎么解决
  6. android 点赞源码,【Ctrl.js】微信给最新一条消息点赞源码
  7. android 自动调整屏幕分辨率
  8. 孩子教育,不要只看重分数!
  9. #ACCV2022还有两周截稿#疫情过后期待相聚澳门,相邀参与亚洲视觉盛会
  10. 微信小程序——微信小程序后台自定义分析,数据准确性分析