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 函数发送信号,接收信号进程和发送信号进程的所有者必须相同,或者发送信号进程的所有者是超级用户。

相关文章
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
通过利用Transformer中间层的隐藏状态,研究提出了层增强分类(LEC)技术,该技术能够以极少的训练样本和参数实现高效的内容安全和提示注入攻击分类,显著提升了模型的性能,并验证了其跨架构和领域的泛化能力。
430 11
LEC: 基于Transformer中间层隐藏状态的高效特征提取与内容安全分类方法
|
11月前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
517 14
|
XML 存储 缓存
Squid 缓存服务器配置
Squid 缓存服务器配置
638 0
|
存储
WWW服务
WWW服务
15862 0
|
Shell C语言 芯片
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
1088 0
嵌入式实践教程--使用Buildroot制作Uboot&Kernel&Rootfs
|
机器学习/深度学习 PyTorch 算法框架/工具
pytorch基础使用—自定义损失函数
pytorch基础使用—自定义损失函数
585 0
|
机器学习/深度学习 人工智能 网络架构
即插即用模块 | RFAConv助力YOLOv8再涨2个点(一)
即插即用模块 | RFAConv助力YOLOv8再涨2个点(一)
1009 0
|
机器学习/深度学习 存储 人工智能
文本生成图像这么火,你需要了解这些技术的演变(1)
文本生成图像这么火,你需要了解这些技术的演变
411 0
|
存储 固态存储 iOS开发
Tuxera for Mac2023最新版MAC读写硬盘U盘磁盘工具软件
新买的Mac电脑由于需要导入旧电脑的数据,因此通常会读取备份硬盘,通过硬盘进行导入。不过由于各种原因,有些mac用户反馈无法正常读取或写入NTFS移动硬盘,下面就通过本篇教程,简单讲述当mac读不出来ntfs,mac硬盘读不出来盘时应当如何正确处理。Tuxera for Mac2023最新版MAC读写硬盘U盘磁盘工具软件下载如下:http://t.csdn.cn/E7GMm
1342 0
|
应用服务中间件
阿里云轻量应用服务器数据盘是什么?需要选择数据盘吗?
阿里云轻量应用服务器数据盘是什么?是用于存放数据的另外的云盘,数据盘和系统盘不同,数据盘可选可不选,根据实际情况选择。
阿里云轻量应用服务器数据盘是什么?需要选择数据盘吗?