I/O操作上设置超时之alarm闹钟法
来源:互联网 发布:c语言输出单引号 编辑:程序博客网 时间:2024/06/06 21:38
环境是linux ubuntu系统
调用 alarm,它在指定超时期满时产生SIGALRM信号。这个方法涉及信号处理。
用法:
alarm(time):TIME就是指定的超时期;如果之前设有超时期,alarm()会返回其时期的剩余值;
signal(SIGALARM, connect_alarm):指定connect_alarm函数是时钟期满时的处理函数;
函数退出前要关闭时钟:
Sigfunc *sigfunc;
sigfunc=signal(SIGALARM, connect_alarm);//保存信号SIGALARM的原始处理函数
alarm(0);//关闭时钟
signal(SIGALARM, sigfunc);//恢复SIGALARM信号的原始处理函数
循环开启闹钟和关闭闹钟:
Sigfunc *sigfunc;
sigfunc=signal(SIGALARM, connect_alarm);
alarm(2);//以上是开闹钟
for(;;){
if(A==terminate clock forerver){
alarm(0);
signal(SIGALARM, sigfunc);
}else if(B==turn up the clock again){
alarm(0);
sigfunc=signal(SIGALARM, connect_alarm);
alarm(2);
}else
do noting....
}
如果符合条件B的话,闹钟要重新开启,这里要先关了,再重新设置你期望的处理函数,然后再设定时间。如果光是简单的重新设定时间的话,程序再新闹钟超时时会直接跳出for循环,结束程序。因为这是默认处理函数,如果你重设置闹钟时不给予自定义的处理函数,会直接退出函数,后果不可估计的。
- I/O操作上设置超时之alarm闹钟法
- UNIX网络编程——套接字I/O操作上的超时设置
- 网络编程中如何为I/O操作设置超时
- Android API19 设置Alarm闹钟
- UNIX网络编程--设置I/O超时
- 12.I/O超时设置方法
- socket I/O上设置超时的三种方法及其比较
- alarm(设置信号传送闹钟)
- I/O操作(上)
- 闹钟(Alarm)
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
- linux网络编程之套接字:套接字I/O超时设置方法和用select实现超时
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
- linux网络编程之socket(十一):套接字I/O超时设置方法和用select实现超时
- C语言alarm()函数:设置信号传送闹钟
- Android之设置闹钟
- 项目管理网站收集
- 我的LoadRunner学习----资料整理
- _MSC_VER
- HTML5 新的 Input 类型
- 深入理解IPv6
- I/O操作上设置超时之alarm闹钟法
- docAndoid 向目录拷贝文件
- 名人“被死亡”,微博成黑客狩猎围场
- 各类开源项目
- php5学习笔记之正则表达式
- 高斯分布(正态分布)
- zz from 人人 ---学术资源搜索google篇
- 互相学习一下别人的博客,还可以。
- [SQL Server]2008版本的bcp,bulk insert命令不支持UTF8文件.2005版支持.