alarm() (闹钟函数)
2016-07-23 21:19
253 查看
alarm也称为闹钟函数,它可以在进程中设置一个定时器,当定时器指定的时间到时,它向进程发送SIGALRM信号。可以设置忽略或者不捕获此信号,如果采用默认方式其动作是终止调用该alarm函数的进程。
中文名闹钟函数外文名alarm特 点进程发送SIGALRM信号特 色终止调用该alarm
2所需头文件
3函数原型
4函数参数
5函数返回值
6程序示例
alarm函数
要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。需要注意的是,经过指定的秒数后,信号由内核产生,由于进程调度的延迟,所以进程得到控制从而能够处理该信号还需要一些时间。
如果有以前为进程登记的尚未超时的闹钟时钟,而且本次调用的seconds值是0,则取消以前的闹钟时钟,其余留值仍作为alarm函数的返回值。
#include<unistd.h>
unsigned int alarm(unsigned int seconds);
seconds:指定秒数
成功:如果调用此alarm()前,进程已经设置了闹钟时间,则返回上一个闹钟时间的剩余时间,否则返回0。
出错:-1
该示例完成了一个简单的sleep函数的功能,由于SIGALARM默认的系统动作为终止该进程,因此在程序调用pause之后,程序就终止了。
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
int main(void){
alarm(50);
int ret;
sleep(30);
ret=alarm(10);
printf("%d\n",ret);
pause();
return 0;
}
程序输出:
先等待30秒 再输出20 等待10秒打印出闹钟
中文名闹钟函数外文名alarm特 点进程发送SIGALRM信号特 色终止调用该alarm
目录
1Linux C2所需头文件
3函数原型
4函数参数
5函数返回值
6程序示例
Linux C
编辑alarm函数
要注意的是,一个进程只能有一个闹钟时间,如果在调用alarm之前已设置过闹钟时间,则任何以前的闹钟时间都被新值所代替。需要注意的是,经过指定的秒数后,信号由内核产生,由于进程调度的延迟,所以进程得到控制从而能够处理该信号还需要一些时间。
如果有以前为进程登记的尚未超时的闹钟时钟,而且本次调用的seconds值是0,则取消以前的闹钟时钟,其余留值仍作为alarm函数的返回值。
所需头文件
编辑#include<unistd.h>
函数原型
编辑unsigned int alarm(unsigned int seconds);
函数参数
编辑seconds:指定秒数
函数返回值
编辑成功:如果调用此alarm()前,进程已经设置了闹钟时间,则返回上一个闹钟时间的剩余时间,否则返回0。
出错:-1
程序示例
编辑该示例完成了一个简单的sleep函数的功能,由于SIGALARM默认的系统动作为终止该进程,因此在程序调用pause之后,程序就终止了。
#include<unistd.h>
#include<stdio.h>
#include<stdlib.h>
int main(void){
alarm(50);
int ret;
sleep(30);
ret=alarm(10);
printf("%d\n",ret);
pause();
return 0;
}
程序输出:
先等待30秒 再输出20 等待10秒打印出闹钟
相关文章推荐
- centos 7 nginx+uwsgi+flask 环境搭建
- raise()
- HDU 5701 中位数计数
- raise()
- Canny 边缘检测算子 MATLAB实现
- HDU-2091
- HDU 5644 (费用流)
- C语言kill()函数:传送信号给指定的进程
- (linux)struct inode 和 struct file
- kill() 函数详解
- 归并排序
- Linux系统用户与用户组管理
- linux 使用qq 这个qq2015更新的
- 8086汇编语言自学经验分享 db,dw,dd的实例
- ubuntu14.04LTS 安装后几个基本设置
- 企业大数据平台三:企业大数据平台安装
- smarty变量
- Android-下拉刷新(一)自定义刷新视图
- 博弈论(二):Sprague-Grundy函数
- 企业大数据平台二:企业大数据平台环境准备