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

相关文章
|
开发者
Alarm-Clock 实验过程|学习笔记
快速学习 Alarm-Clock 实验过程
254 0
Alarm-Clock 实验过程|学习笔记
|
NoSQL Unix
1.信号处理之:kill(),alarm(),pause()函数
 1查看信号的方式:man 7 signal,通过这个命令可以查看到所有信息。 2查看信号kill -l 注意,后面的32个信号表示的实时信号。   会发现一个规律,前32种信号会有各种不同的名称,后32种会以“SIGRTMIN”或者“SIGRTMAX”开头,前者是从unix继承下来的信号,称为不可靠信号(也称为非实时信号),后者为了解
1104 0
|
iOS开发
Notification的用法
Notification的用法
266 0
Notification的用法
|
物联网 Linux 开发者
signal 函数1|学习笔记
快速学习 signal 函数1
|
Android开发
Notification(一)——基础知识使用示例
main.xml如下:   another.xml如下:   MainActivity如下: import android.
772 0
|
C++ 程序员
C++ clock()函数实现功能介绍
我们今天要向大家介绍的是有关C++ clock()函数的一些基本概念以及应用方式,目的就是希望能够帮助大家轻松掌握这一应用技巧。 AD: 在C++编程语言中,有许多特定的函数应用可以帮助我们实现许多不同的特定功能,方便程序员的实际开发。
1474 0
|
Web App开发 消息中间件
UC编程8-信号发送函数kill/raise/setitimer/alarm和信号集函数segprocmask
//myuc.h #include//io流 #include//标准库 #include//uc标准头文件 #include//文件控制 #include//c字符串 #include #include//内存映射 #include//文件...
872 0
|
Linux Unix
Linux下的定时器:alarm()与setitimer()
Linux下的定时器有两种,以下分别介绍:   1、alarm   如果不要求很精确的话,用alarm()和signal()就够了   unsigned int alarm(unsigned int seconds)   函数说明: alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。
1535 0

热门文章

最新文章