linux超时设置函数,I/O操作上设置超时之alarm闹钟法
环境是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循环,结束程序。因为这是默认处理函数,如果你重设置闹钟时不给予自定义的处理函数,会直接退出函数,后果不可估计的。
linux超时设置函数,I/O操作上设置超时之alarm闹钟法相关推荐
- 如何在套接字IO操作上设置超时机制
主要有三种方案: (1)调用Alarm,它在指定超时期满时产生SIGALRM信号,此方法涉及信号处理,而信号处理在不同的实现上存在差异,而且可能干扰进程中现有的ALARM调用. (2)在SELECT, ...
- amazon linux虚拟主机,如何在Amazon AWS上设置Linux服务器
AWS(Amazon Web Services)是全球领先的云服务器供应商之一. 您可以使用AWS平台在一分钟内设置服务器. 在AWS上,您可以微调服务器的许多技术细节,如CPU数量,内存和HDD空间 ...
- Sql超时时间已到,在操作完成之前超时时间已过或服务器未响应。
随着数据库数据的不断增大,查询时间也随之增长.而客户端与数据库连接时间以及命令的执行时间都是有限的.默认为30s. 所以在查询数据的时候,程序会出现 "超时时间已到.在操作完成之前超时时间已 ...
- icloud电脑设置_如何在Android上设置iCloud电子邮件访问
icloud电脑设置 Ben Stockton 本·斯托克顿 If you switch from iPhone to Android, you don't have to ditch iCloud ...
- python设置函数_在Python中设置函数签名
假设我有一个泛型函数f,我想以编程方式创建一个行为与f相同但具有自定义签名的函数f2. 更多细节 给定列表l和字典d,我希望能够:将f2的非关键字参数设置为l中的字符串 将f2的关键字参数设置为d中的 ...
- macos必做的设置_如何在MacOS上设置PHP,CaddyServer和Kirby —以及为什么要这样做
macos必做的设置 by Philipp Haidenbauer 菲利普·海登鲍尔(Philipp Haidenbauer) 如何在MacOS上设置PHP,CaddyServer和Kirby -以及 ...
- 路由器桥接静态ip设置_如何在路由器上设置静态IP地址
路由器桥接静态ip设置 Routers both modern and antiquated allow users to set static IP addresses for devices on ...
- 劳动合同到期提醒怎么设置,怎么在便签上设置合同到期提醒
劳动合同在职场中起到的作用非常重要,如果劳动合同到期没有及时续签,会给员工和用人单位带来不必要的麻烦.对于上班族来说,合同到期往往需要自己主动提出续签申请,如同自己没有及时申请续签,甚至会影响工资发放 ...
- mac 使用移动硬盘设置_如何在Mac上设置和使用照片
mac 使用移动硬盘设置 Photos-formerly iPhoto-is macOS's default app for organizing photos. Photos integrates ...
- android 设置view最大高度,android-在RecyclerView上设置最大高度
我有一个对话框片段,其中包含线性布局,其中涉及RecyclerView上方的titleText,在最底部,recyclerView下方有一个按钮. 由于recyclerView根据适配器设置的项目数展 ...
最新文章
- Citrix XenServer@cloudstack基本功能测试报告2
- Java内存分配原理
- 给Apache虚拟主机增加端口的方法
- leetcode 5. 最长回文子串 暴力法、中心扩展算法、动态规划,马拉车算法(Manacher Algorithm)
- ajax返回不刷新页面,Jquery ajax不刷新页面提交action取得返回值
- C++rat maze老鼠迷宫算法(附完整源码)
- python 绘图 hist bin参数_Python-hist,distplot bin宽度不一致问题的解决方案
- 【Java】Gourmet咖啡系统
- 机器学习预测港股打新收益
- css使两个盒子并列_前端学习CSS
- CSS去掉TextBox边框
- Google整体架构猜想
- 【Sublime Text 3】编译环境
- linux下安装配置nginx,Linux下安装与配置nginx
- android远程主机强迫关闭了一个现有的连接,远程主机强迫关闭了一个现有的连接解决方法...
- mac下如何解压7z
- 独步山南之桃花源探秘(上)
- LTR 和 CTR 和 所谓的pointwise, pairwise, listwise的关系
- tplink720n变无线打印服务器,TL-WR720N路由器无线路由模式设置
- 从事软件测试需要学自动化么
热门文章
- matlab中nc值是什么意思,科学网-.nc数据读取详细资料matlab2010a及后面的版本-张凌的博文...
- RTP传输JPEG图片到VLC实时播放(代码)
- 计算机网络 | 划分子网
- 网络游戏广告植入案例
- 使用kubeadm在CentOS上搭建Kubernetes1.14.3集群
- httpwatch使用_使用PHP自动化HTTPWatch
- 初中英语语法(017)-关系代词
- 挖掘有多深,舞弊就有多大,孙德顺敛财10亿,看图计算如何穿透与识别多层嵌套影子公司!...
- 全栈工程师需要了解掌握的技术栈
- 引脚复用和引脚重映射