linux timerfd系列函数学习笔记2 获取超时次数
基于笔记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 获取超时次数相关推荐
- linux timerfd系列函数总结:timerfd.h
Table of Contents 一.timerfd系列函数 (1)timerfd_create()函数 (2)timerfd_settime()函数 (3)timerfd_gettime()函数 ...
- Linux下面bzero函数学习笔记
原型:extern void bzero(void *s, int n); 用法:#include <string.h> 功能:置字节字符串s的前n个字节为零. 说明:bzero无返回值. ...
- mysql入门很简单系列视频-学习笔记
mysql入门很简单系列视频-学习笔记 视频链接:mysql入门很简单系列视频 https://www.bilibili.com/video/av14920200/ 以前主要就了解DDL.DML.DC ...
- 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记
转载自: 九十分钟极速入门Linux--Linux Guide for Developments 学习笔记 http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA ...
- python3《机器学习实战系列》学习笔记----3.2 决策树实战
前言 一.ID3算法构造决策树 1.1 背景 1.2 信息增益计算 1.3 递归生成决策树 二.使用Matplotlib注解绘制树形图 2.1 Matplotlib注解 2.2 构造注解树 三.测试和 ...
- 【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】
目录 1.Linux内核输入子系统概念导入 1.1 输入设备工作机制 1.2 运行框架 1.3 分层思想 2.驱动开发步骤 2.1 在init()或probe()函数中 2.2 在exit()或rem ...
- Linux C编程一站式学习笔记2
Linux C编程一站式学习笔记 chap2 常量.变量和表达式 本书以C99为标准 一.继续hello world 加入更多注释的hello world 可以用ctrl+(shift)+v复制到vi ...
- S32K系列S32K144学习笔记——LPIT0
一用S32K144苦似海,道友,能不用,千万不去用. 本例程基以下如图所示接口操作,MCU为S32K144,开发平台S32DSworkspace 功能描述:开启LPIT0定时器,LED以0.5s时间间 ...
- MATLAB学习笔记#001 获取矩阵大小
MATLAB学习笔记#001 获取矩阵大小 size 函数 语法 说明 示例 参考链接 size 函数 语法 [sz1,...,szN] = size(___) 说明 返回矩阵各个维度的长度 示例 [ ...
最新文章
- jquery ajax 与 flask 传输 json 并且 提取ajax数据作为全局变量
- 物理虚拟化服务器之间的KVM在线动态迁移
- Web Service属性介绍
- 深入理解Flask中的上下文
- [HDU] 1312Red and Black -用广搜求能探寻到的点的数目
- 东拉西扯:Facebook的身价
- Android坡度计
- c/c++教程 - 2.4.2.6 初始化列表语法,初始化列表参数
- c语言 ++ --运算符_C / C ++中的按位运算符
- Linux终端下输出二维码
- 终于有了MSDN上的Blog
- google glog 简单使用小结
- 北京内推 | 秘塔科技招聘NLP算法工程师(社招校招可转正实习)
- linux脚本编程for,谢烟客---------Linux之bash脚本编程---if补充和for循环
- 语雀文章导入CSDN
- 苹果终端date命令_mac终端常用命令
- mysql 索引加锁分析
- oppo系统android版本下载,oppo手机助手安卓版
- 麦克风声源定位原理_一种利用麦克风阵列进行声源定位的方法与流程
- 佛曰:心底清净方为道