alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALRM信号。可以设置忽略或者不捕获此信号,如果采用默认方式其动作是终止调用该alarm函数的进程(源于百度百科一段话),这里说的终止调用alarm函数的进程我是理解为:假如此刻在man函数中从上往下执行,到了这个定时器定的时间停止往下执行man函数而是去进行另一个操作:signal函数调用SIGALRM信号的处理函数handle(写的子函数);

那么下面见代码,照着代码解释:

#include <stdio.h>
#include <signal.h>// 信号处理函数
void handle(int signum)
{printf ("hello world\n");// 定时器重置//!!因为alarm是一次性的,在handle()函数中重新设置了定时器;这样命苦的main()在执行了handle()之后,//因为while(1)的原因无法结束进程,只能再次和alarm()承诺2秒之后再调用signal,如此往复;alarm(2);
}int main()
{// 定时器是一次性的,下面设置的定时的时间是2秒,程序从main开始执行,从下往下遇到了alarm(2);//表示alarm(2)对mian说:嗨,你先往下执行但是两秒之后你要停下来哦,来处理信号函数signal();//嗯,好的约定好了,main()往下执行两秒,哈哈,我才执行了0.5秒就到尾部了可以结束程序了哈啊哈;//可是,呀!遇到while(1)死循环,结束不了程序,看来还是要履行承诺的,乖乖等了1.5秒去执行signal函数;//(设置死循环就是为了让main执行signal,当然你也可是用sleep()让main()睡个三秒,也是在等和定时器两秒约定的到来)alarm(2);signal(SIGALRM, handle);while (1);return 0;
}

看效果图:

定时器alarm函数相关推荐

  1. 定时器 槽函数没执行_Web服务器项目详解 07 定时器处理非活动连接(上)

    点击"两猿社" 关注我们 Web服务器详解目录 00 项目概述 01 线程同步机制包装类 02 半同步/半反应堆线程池(上) 03 半同步/半反应堆线程池(下) 04 http连接 ...

  2. Linux定时器alarm()用法讲解

    运行程序,分析程序执行结果. #include<unistd.h> #include<signal.h> #include<stdio.h> void handle ...

  3. Linux系统编程——alarm函数

    alarm函数 函数原型:unsigned int alarm(unsigned int seconds); 函数描述:设置定时器(闹钟).在指定seconds后,内核会给当前进程发送14)SIGAL ...

  4. C语言 alarm函数

    // ..使用内存映射可以拷贝文件 /* 对原始文件进行内存映射 创建一个新文件 把新文件的数据拷贝映射到内存中 通过内存拷贝将第一个文件的内存映射区拷贝到第二个文件的内存映射区 释放资源 */// ...

  5. alarm函数使用方法

    文章目录 函数原型 函数使用: 函数的返回值 举例 函数原型 引用头文件: #include <unistd.h> unsigned int alarm(unsigned int seco ...

  6. linux之alarm函数

    1. alarm函数 [cpp] view plain copy [1] 引用头文件:#include <unistd.h>; [2] 函数标准式:unsigned int alarm(u ...

  7. 前端JavaScript DOM BOM 自学复盘 D1(DOM-获取DOM元素、修改HTML标签/表单/css样式属性、定时器-间歇函数)

    内容概要 1. Web API 基本认知 1.1. 作用和分类 1.2. 什么是DOM 1.3. DOM作用 1.4 DOM树 1.4.1. DOM树是什么? 1.4.2. DOM 树的作用 1.5 ...

  8. linux C之alarm函数(更改)

    http://blog.sina.com.cn/s/blog_6a1837e90100uhl3.html alarm也称为闹钟函数,alarm()用来设置信号SIGALRM在经过参数seconds指定 ...

  9. linux alarm函数使用

    unsigned int alarm(unsigned int seconds) 函数作用:在seconds秒之后向调用alarm()的进程发送一个SIGALRM信号. 1.如果指定seconds是0 ...

最新文章

  1. 求一个字符串中连续出现的次数最多的子串
  2. Js中的window.parent ,window.top,window.self 详解
  3. FPGA 中的latch 锁存器
  4. mysql查询各科前3_MySQL 查询各科前三的数据
  5. CTFshow php特性 web125
  6. Xtract 实现 VMware Vsphere 迁主机到 Nutanix cluster
  7. c post请求网页_Python使用urllib2抓取网页
  8. CCF201709试题
  9. 视频中场的概念(1080I和1080P)和BT601/656/709/1120/2020/2077
  10. Axure RP 8--成绩管理页面原型图
  11. 【你也能看得懂的电磁场与电磁波系列连载 12】
  12. 3.2 基本数据类型
  13. (Java实现) 美元汇率
  14. 银行存管java 对接_Jay su-华正商务旅行社-4年中级java工程师-猿急送
  15. text/template与html/template的区别
  16. 仿QQ空间的一款APP(一)
  17. numpy.ix_的用法详解
  18. [附源码]JAVA毕业设计美食推荐管理系统(系统+LW)
  19. python搞笑语句_Python那么有趣!Python里五个有趣的彩蛋你知道吗?
  20. adc去质器什么意思_谁是最强ADC去质器?图1一般,图3还行,图4一秒一个ADC

热门文章

  1. 使用.net 操作 微信公众平台 —— 接收用户操作 —— 关注/取消关注 公众号
  2. 银河麒麟服务器操作系统设置网卡自启动
  3. linux传奇私服文件包,传奇私服服务器端文件结构
  4. 比较火的NFT数字艺术品交易平台
  5. 【ESXi 7.x内部升级】ESXi 升级 —— 小版本升级(7.X或8.X版本内升级)
  6. activiti学习资料--initiator的作用及其使用
  7. java 小球抛物线_vue 2.0 购物车小球抛物线
  8. 通俗易懂看RB-tree(二)
  9. PhotoShop中的自由变换UI实现
  10. 中金人工智能报告:AI时代,10 年之后我们还能干什么?|71页完整报告