linux定时器错误使用,linux下定时器的使用

Linux下定时器的使用主要用到两个函数:setitimer()和getitimer();

注意:setitimer()一个进程中只能有一个,下一个会覆盖前一个的定时。

Linux系统给每个进程提供了3个定时器,每个定时器在各自不同的域里面计数,当任何一个timer计数结束了,系统就发一个信号(signal)给该进程,同时计数器重置。

以下是支持的三种计数器形式:

1、ITIMER_REAL         在real  time中计数器减1,然后等计数往比后发送SIGALRM信号。

2、ITIMER_VIRTUAL    当进程在执行的过程中计数,然后当计数完毕后发送SIGVTALRM信号给该进程。

3、ITIMER_PROF         在该进程被执行和系统在代表该进程执行的时间都进行计数。

getitimer()/setitimer()功能描述:

获取或设定间歇计时器的值。系统为进程提供三种类型的计时器,每一类以不同的时间域递减其值。当计时器超时,信号被发送到进程,之后计时器重启动。

用法:

#include

int getitimer(int which, struct itimerval *value);

int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);

参数:

which:间歇计时器类型,有三种选择

ITIMER_REAL //数值为0,计时器的值实时递减,发送的信号是SIGALRM。

ITIMER_VIRTUAL //数值为1,进程执行时递减计时器的值,发送的信号是SIGVTALRM。

ITIMER_PROF //数值为2,进程和系统执行时都递减计时器的值,发送的信号是SIGPROF。

value,ovalue:时间参数,原型如下

struct itimerval

{

struct timeval it_interval;

struct timeval it_value;

};

struct timeval

{

long tv_sec;

long tv_usec;

}; getitimer()用计时器的当前值填写value指向的结构体。

setitimer()将value指向的结构体设为计时器的当前值,如果ovalue不是NULL,将返回计时器原有值。

返回说明:

成功执行时,返回0。失败返回-1,errno被设为以下的某个值

EFAULT:value或ovalue是不有效的指针

EINVAL:其值不是ITIMER_REAL,ITIMER_VIRTUAL 或 ITIMER_PROF之一。

举例说明:

#include#include#include#include#include#includevoidPrintMsg(intNum)

{

printf("%s/n","Hello World");return;

}intmain(intargc,char*argv[])

{

signal(SIGALRM, PrintMsg);structitimerval tick;

tick.it_value.tv_sec=10;//十秒钟后将启动定时器tick.it_value.tv_usec=0;

tick.it_interval.tv_sec=1;//定时器启动后,每隔1秒将执行相应的函数tick.it_interval.tv_usec=0;//setitimer将触发SIGALRM信号intret=setitimer(ITIMER_REAL,&tick, NULL);if( ret!=0)

{

printf("Set timer error. %s /n", strerror(errno) );return-1;

}

printf("Wait!/n");

getchar();return0;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

native.loadlibrary获取路径不对_【Python专题(三)】Python模块导入与路径管理

​前言Python项目的路径管理是一个让人头疼的问题。在写python项目的时候,明明 import了文件A,代码运行时却收到 ModuleNotFoundError,仔细一看,是引用路径不对,很是气人。又或者,当项目中出现了重名的pack…

前沿研究:21世纪工程领域的重大挑战 | 中国工程院院刊

本文选自中国工程院院刊《Engineering》2020年第7期作者:C.D. Mote Jr.来源:Engineering in the 21st Century: The Grand Challenges and the Grand Challenges Scholars Program[J].Engineering,2020,6(7):728-732.编者按近期,中国工程院外…

01-python中字符串的常见操作

(1)find 检测str是否包含在myStr中,如果存在则返回开始的索引值,否则返回-1。 In [1]: myStr "hello world tairan and tairanCity."In [2]: str "tairan"In [3]: myStr.find(str) Out[3]: 12In [7]: str …

centos双系统只有linux,Centos添加Windows/Centos双系统启动

1 在/etc/boot/gurb2/grub.cfg中### END /etc/grub.d/00_header ### 后添加:### BEGIN /etc/grub.d/30os_prober ###menuentry Windows 10(loader)(on /dev/sda1){insmod part_msdosinsmod ntfsset roothd0,msdos1chainloader 1}### END /etc/grub.d/30os_prober #…

linux网站目录在哪_果核建站教程【二】环境安装与搭建第一个网站

有问题加群,一起讨论,一起学习群号:664592923昨天大家都能理解,那么今天我们就要进入实战教程咯。这节教程讲在本地搭建环境和安装程序。1本地环境的搭建之前有教程讲如何在Windows开启Linux系统,本来想直接让大家在Li…

北斗定位2.0版来了!普通人手机可用,全免费!

◎ 科技日报记者 张佳星1.0版解决快的问题,2.0版解决又快又准的问题,是1.0基础上的一个巨大升级!10月14日,在北斗卫星导航系统高峰论坛上,中国信息通信研究院(下简称“信通院”)发布了北斗高精度…

做出明智的决策

无处不在的决策 在我们的一生中,会做出无数的决定或决策,有关于个人生活的,也有工作专业相关的,这发生在我们的每一天中。在这些决策中,有一些无关紧要,有一些却会产生长期影响,乃至导致颠覆性的…

如何看打印机的缓存区域_松下打印机好吗 松下打印机卡纸如何解决【详解】...

现在人们早已习惯了用手机记录下生活中的美好事物,因此拥有一台能打印照片的打印机成为这些人的选择,可随着现在人们对于打印机的需求量在不断的增加,市面上的打印机品牌也随之增多了起来。那么松下 打印机怎么样,松下打印机使用过…

Linux 蓝牙读写,实战Linux Bluetooth编程(三) HCI层编程

作者:Sam (甄峰)(HCI协议简介,HCI 在BlueZ中的实现以及HCI编程接口)1. HCI层协议概述:HCI提供一套统一的方法来访问Bluetooth底层。如图所示:从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Modul…

python xml

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口…

碰疼了会躲!这个植入“迷你大脑”的AI机器人,可感知疼痛,还能自我愈合...

来源:雷锋网人类为什么会产生痛觉?没错,是因为大脑中枢神经。和触觉、温度等感觉一样,我们对疼痛非常敏感,当受到外界“轻微”刺激时,体内的神经元产生相应的信号,并传输至大脑中的中枢神经系统…

哈佛大学惊人发现:新冠对人类未来影响巨大!

来源:北美观察家近日,哈佛大学公共卫生学院发了一篇Science:根据论文中的描述,无论是否能研发出疫苗,新冠病毒都可能会陪伴人类到2025年。那么,2025年以后人类能摆脱新冠病毒吗?不,只…

服务的分类与启动

一、服务的分类 查询已安装的服务 RPM包安装的服务 [rootbogon ~]# chkconfig --list# 查看服务自启动状态,可以看到所有RPM包安装的服务 # 此命令不可以查看源码包安装的服务 注:1、2、3、4、5、6是运行级别 源码包安装的服务 查看服务安装位置&#xf…

在Linux里awk与sed的区别,linux awk和sed讲解

sed 工具简介在了解了一些正规表示法的基础应用之后,再来呢?呵呵~两个东西可以玩一玩的,那就是 sed 跟 awk 了!这两个家伙可是相当的有用的啊!举例来说,鸟哥写的 logfile.sh 分析登录文件的小程…

python编辑器_推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者

编程里面的编辑器就像是武林大会里面的高手,每一年都有新秀,黑马出现!比如有练习霸道的天罡之气的榜首Pycharm,力量雄厚霸道战斗力极强,但是对斗气消耗很大,占内存大而且启动速度有点慢!还有练习…

因果解释能够对规则进行解释吗?

来源:《哲学动态》2017年第10期作者:初维峰(西安交通大学人文社会科学学院)本文受中国博士后科学基金面上资助项目“当代西方因果解释理论研究”(2017M613160)资助。在现实生活中,我们不仅要对某一事件进行解释&#x…

抓取一台电脑linux,教程方法;用来获取Linux主机信息的5个常用命令电脑技巧-琪琪词资源网...

琪琪词资源网-教程方法;用来获取Linux主机信息的5个常用命令电脑技巧,以下是给大家带来的教程方法;用来获取Linux主机信息的5个常用命令,大家可以了解一下哦!有些时候Linux 系统管理员在接手一台新的服务器时,如果没有好的交接文档&#xff0…

软件工程网络15个人阅读作业1(201521123029 郑佳明)

软件工程网络15个人阅读作业1 Task1:博客园地址 茗想 Task2:码云地址 ming Task3:完成博客-阅读与思考 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程专业的畅想 当初你…

okhttp post json 数据_使用python抓取App数据

App中的数据可以用网络爬虫抓取么答案是完全肯定的:凡是可以看到的APP数据都可以抓取。下面我就介绍下自己的学习经验和一些方法吧 本篇适合有过web爬虫基础的程序猿看没有的的话学的可能会吃力一些App接口爬取数据过程使用抓包工具手机使用代理,app所有…

JS的typeof力所能及已经力所不及

typeof返回值列表 typeof的作用 返回参数的类型 typeof能判断的类型 String类型: typeof a stringUndefined类型: typeof undefined undefinedBoolean类型: typeof true booleanNumber类型: typeof 22 numberSymbol类型: typeof Symbol() symbolFunction类型:typeof funct…