linux系统编程中alarm函数的介绍和实例
2017-10-11 16:03
102 查看
一、函数简介:
alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALRM信号。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。需要注意的是,经过指定的秒数后,信号由内核产生,由于进程调度的延迟,所以进程得到控制从而能够处理该信号还需要一些时间。如果有以前为进程登记的尚未超时的闹钟时钟,而且本次调用的seconds值是0,则取消以前的闹钟时钟,其余留值仍作为alarm函数的返回值。
二、函数的原型:
unsigned int alarm(unsigned int seconds);
三、实例:
1、实例代码:
2、运行结果:
3、执行结果分析:
alarm(8)执行之后告诉内核,让内核在8秒时间之后向该进程发送一个定时信号,该进程捕获到该信号后就调用sig_handler函数进行处理。
alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALRM信号。要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。需要注意的是,经过指定的秒数后,信号由内核产生,由于进程调度的延迟,所以进程得到控制从而能够处理该信号还需要一些时间。如果有以前为进程登记的尚未超时的闹钟时钟,而且本次调用的seconds值是0,则取消以前的闹钟时钟,其余留值仍作为alarm函数的返回值。
二、函数的原型:
unsigned int alarm(unsigned int seconds);
三、实例:
1、实例代码:
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> void sig_handler(int num) { printf("receive the signal ,signal number=%d.\n", num); alarm(8); } int main() { signal(SIGALRM, sig_handler); alarm(8); printf("line number=%d,function=%s\n",__LINE__,__func__); while(1) { printf("waiting for the alarm signal ....\n"); pause(); printf("pause is over.\n"); } exit(0); }
2、运行结果:
3、执行结果分析:
alarm(8)执行之后告诉内核,让内核在8秒时间之后向该进程发送一个定时信号,该进程捕获到该信号后就调用sig_handler函数进行处理。
相关文章推荐
- ASP.NET MVC 3 Model【通过一简单实例一步一步的介绍】
- WLAN API应用介绍(含实例程序)
- SQl Function 创建函数实例介绍
- Python multiprocessing.Manager介绍和实例(进程间共享数据)
- apache thrift介绍与实例
- Android图片处理实例介绍(图)
- 华为三层交换机端口汇聚和交换机备份 实例介绍
- CSS3的transition和animation的用法实例介绍
- ADF中AM实例池参数介绍
- AWT简单实例介绍
- 全面介绍Windows内存管理机制及C++内存分配实例
- Filter介绍,执行顺序,实例
- IntentService使用详解和实例介绍
- BootStrap响应式导航条实例介绍
- sp_executesql 应用实例 介绍 解释
- Linux Epoll介绍和程序实例
- Linux od命令详细介绍及用法实例
- Spring Aop重要概念介绍及应用实例结合分析
- 实例介绍删除数据库中重复数据的几个方法