Alarm 函数|学习笔记

简介: 快速学习 Alarm 函数

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频Alarm 函数 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11009


Alarm 函数  

 

alarm 函数

kill 函数可以发信号,alarm 函数也可以发信号

#include

unsigned int alarm(unsigned int seconds) ;

alarm 函数参数是一个无符号整型,返回值也是一个无符号整型的

功能:

在 seconds 秒后,向调用进程发送一个 SIGALRM 信号,SIGALRM 信号的默认动作是终止调用 alarm 函数的进程。

alarm就是定时自杀。

返回值:

若以前没有设置过定时器,或设置的定时器已超时,返回0;否则返回定时器剩余的秒数,并重新设定定时器。

相当于定时炸弹,定好时是5秒后刚经过2秒又调了一次alarm重新去定时,返回值就是第二次alarm返回值就是3还剩3秒重新定时,只有一个闹钟。

例:02_ alarm.c

#include

#include

int main( int argc,  char *argv[])

{

int seconds = 0;

seconds = alarm(5);

printf(" seconds = %d\n",seconds);

sleep(2);

seconds = alarm(5);

printf(" seconds = %d\n",seconds);

while(1);

return.0;

}

alarm 例子效果:

#include

#include

Int main ( int argc,  char  *argv[])

{

int seconds = 0;

seconds = alarm(5) ;

Printf ("seconds = %d\n",  seconds);

sleep(2);

seconds = alarm(5) ;

printf (" seconds = %d\n",  seconds) ;

while(1) ;

return 0 ;

}

第一个变量第一次定时 alarm 倒计时5秒因为没有定时器也没有定过时,第一次返回值为0,然后倒计时5秒刚过2秒又去 alarm 重新设定闹钟,第二次 alarm 的时候上一个闹钟还剩3秒所以第二个 second 是3,接下来 while 一循环,5秒之后会收到一个信号进程结束,相当于这个闹钟被重新设定。

3是返回值,是上一个闹钟还剩3秒,5秒钟之后收到信号,相当于一个闹钟被设了两次,第一次设好倒计时5刚过2秒就重新被倒计时,倒计时5秒到了之后收到一个信号当前进程。

转为UTF-8无BOM编码格式:

[02_day]gcc alarm.c -o alarm

[02_day]clear

[02_day]./alarm

seconds = 0(2秒钟之后返回3)

seconds = 3(5秒钟之后进程结束)

闹钟

[02_day]

alarm倒计时多少秒给当前进程发送一个 alarm 信号

注意转为UTF-8无BOM编码格式中的“闹钟”两字

当前进程收到一个信号就结束,它的父进程可以收到子进程的退出状态,知道子进程./运行的进程是因为收到 alarm 信号退出的,所以就打了一个“闹钟”。

注意:

使用 kill 函数发送信号,接收信号进程和发送信号进程的所有者必须相同,或者发送信号进程的所有者是超级用户。

相关文章
【代码片段】uTools Api请求
开发uTools插件时要与uToolsApi交互
300 0
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
通过利用Transformer中间层的隐藏状态,研究提出了层增强分类(LEC)技术,该技术能够以极少的训练样本和参数实现高效的内容安全和提示注入攻击分类,显著提升了模型的性能,并验证了其跨架构和领域的泛化能力。
391 11
LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
|
XML 存储 缓存
Squid 缓存服务器配置
Squid 缓存服务器配置
619 0
|
数据安全/隐私保护 iOS开发 开发者
hbuilderx打包应用上传到app store构建版本的教程
hbuilderx打包应用上传到app store构建版本的教程
272 0
|
存储 数据库
【随手记】顺序I/O和随机I/O的定义和区别
【随手记】顺序I/O和随机I/O的定义和区别
622 1
|
存储
WWW服务
WWW服务
15546 0
|
SQL 数据挖掘 数据库
SQL数据分析实战:从导入到高级查询的完整指南
SQL数据分析实战:从导入到高级查询的完整指南
378 0
|
传感器 编解码 监控
基于CC2530设计智慧农业控制系统
本文基于CC2530设计了一种智慧农业控制系统,采用DHT11模块、BH1750模块和土壤湿度传感器等传感器,通过串口协议将采集的数据上传给上位机显示。
504 0
|
Shell C语言 芯片
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
1045 0
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
|
机器学习/深度学习 人工智能 网络架构
即插即用模块 | RFAConv助力YOLOv8再涨2个点(一)
即插即用模块 | RFAConv助力YOLOv8再涨2个点(一)
983 0