Linux定时器alarm()用法讲解
运行程序,分析程序执行结果。
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
void handler() {
printf("Hello\n");
signal(SIGALRM,handler);
alarm(5);
}
main()
{ int i;
handler();
for(i=1;i<21;i++){ printf("sleep %d ...\n",i); sleep(1); }
}
若将alarm()的参数值改为10,观察输出结果有何变化。
分析:此处alarm()括号内的参数值为10,则在执行完语句 alarm(10)后,定时器开启,每隔10s给调用其的进程发送一个SIGALARM信号。这里已将信号到来的动作修改为函数handler(),所以每当定时器到时间时,都会执行一次handler()函数:输出 hello,并再次开启定时器。
下面我们将程序做出些许修改,并观察运行结果。
很容易发现,运行结果与之前没修改程序前一致,那么这是因为什么呢?在此,我将signal()函数放在了主函数开始处,当执行完主函数的第一条语句后,SIGALARM动作就被重新定义了。如此一来,每间隔10s,函数handler()就要执行一次。
alarm()函数详解:
Linux定时器alarm()用法讲解相关推荐
- Linux定时器crontab用法
初识定时器 在Linux终端通过crontab -e命令,向文件中写入*/1 * * * * /home/ysl/tmp/SendMail.py(crontab表达式),即添加了一项每1分钟执行1次的 ...
- linux alarm定时器,Linux 定时器alarm()(转)
系统中的每个进程都有一个私有的闹钟.这个闹钟很像一个计时器,可以设置在一定秒数后闹钟.时间一到,时钟就发送一个信号SIGALRM到进程. 函数原型:unsigned int alarm(unsigne ...
- linux文件权限umask,linux系统中UMASK权限的用法讲解
原标题:linux系统中UMASK权限的用法讲解 umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限. 这里要说明两点: 1.针对目录来说x权限代表可以进入该目录,所以说对于这个权限初 ...
- Linux定时器接口
Linux定时器接口主要分为三类: 一. sleep(), unsleep, alarm(),引用了SIGALARM信号,在多线程中使用信号又是相当麻烦的. 二. nanosleep(), clock ...
- Linux操作系统下进程讲解(史上最强总结)
Linux操作系统下进程讲解 一.进程的基本概念: 1. 什么是进程 在传统的操作系统中,程序不可以独立的运行,作为资源分配和独立运行的基本单位都是进程.进程的定义是一个可执行中程序的实例,系统中每一 ...
- linux signal用法,Linux 信号 signal 用法详解及注意事项
Linux 信号 signal 用法详解及注意事项 1) SIGHUP 本信号在用户终端连接 (正常或非正常) 结束时发出, 通常是在终端的控 制进程结束时, 通知同一 session 内的各个作业, ...
- Linux下wine用法
Linux下wine用法 下面是wine的使用方法. 一.要在Linux下运行,wine是必不可少的,所以,请将wine安装到你的系统里. 二.将你的Windows所在的分区加载到某个目录.(本文假定 ...
- linux md5sum 的用法(转)
MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度 ...
- linux上的定时器上的jiffies,linux定时器和Jiffies汇.doc
linux定时器和Jiffies汇 1.linux HZ Linux核心几个重要跟时间有关的名词或变数,将介绍HZ.tick与jiffies. HZ Linux核心每隔固定周期会发出timer int ...
最新文章
- 列名无效怎么解决_PowerQuery批量合并Excel,前面有空行且不相等的解决办法
- 人工智能产业趋势和机遇!
- 神经网络知识专题总结!
- java之==和equals区别
- 具有缺失值的多元时间序列的递归神经网络
- 《统计学习方法》读书笔记(1)---学习的要素
- 自动化html定位,Selenium自动化定位方法
- 线段 LibreOJ - 10007(贪心)
- 如何使create-react-app与Node Back-end API一起使用
- Taro+react开发(86):资源文件处理
- git-版本的回退操作与
- WPF Grid布局
- 薰衣草紫色调人像lr/ps/luts预设
- linux更改文件系统格式,只安装Linux系统,把硬盘全部格式化成Linux文件系统
- R语言ggplot2可视化时间序列柱形图:通过双色渐变配色颜色主题可视化时间序列柱形图
- QQ网页登陆密码加密方式(农场、空间、WebQQ等通用)(网摘)
- Required view 'XXX' with ID XXX for field 'xxx' was not found
- Ubuntu操作系统的安装
- js html 乱码
- SSL数字证书之CA根证书、CA中间证书和SSL证书
热门文章
- MTK平台Metadata的加载(4)—Q版本后
- canvans——合并图片
- 解决:The ‘Access-Control-Allow-Origin‘ header contains___Nginx跨域设置
- C++ 使用海康威视SDK将视频推流到rtmp服务器
- web端与移动端高德地图接入及实例化
- 网络代理服务器的设计与实现
- 批量将 PDF 转为 ePub 格式文档
- Tensorflow小白实战系列
- WIN10管理员权限设置、更改用户名被“拒绝访问”
- VSCode配置 for Mac(一)C++