环境是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闹钟法相关推荐

  1. 如何在套接字IO操作上设置超时机制

    主要有三种方案: (1)调用Alarm,它在指定超时期满时产生SIGALRM信号,此方法涉及信号处理,而信号处理在不同的实现上存在差异,而且可能干扰进程中现有的ALARM调用. (2)在SELECT, ...

  2. amazon linux虚拟主机,如何在Amazon AWS上设置Linux服务器

    AWS(Amazon Web Services)是全球领先的云服务器供应商之一. 您可以使用AWS平台在一分钟内设置服务器. 在AWS上,您可以微调服务器的许多技术细节,如CPU数量,内存和HDD空间 ...

  3. Sql超时时间已到,在操作完成之前超时时间已过或服务器未响应。

    随着数据库数据的不断增大,查询时间也随之增长.而客户端与数据库连接时间以及命令的执行时间都是有限的.默认为30s. 所以在查询数据的时候,程序会出现 "超时时间已到.在操作完成之前超时时间已 ...

  4. icloud电脑设置_如何在Android上设置iCloud电子邮件访问

    icloud电脑设置 Ben Stockton 本·斯托克顿 If you switch from iPhone to Android, you don't have to ditch iCloud ...

  5. python设置函数_在Python中设置函数签名

    假设我有一个泛型函数f,我想以编程方式创建一个行为与f相同但具有自定义签名的函数f2. 更多细节 给定列表l和字典d,我希望能够:将f2的非关键字参数设置为l中的字符串 将f2的关键字参数设置为d中的 ...

  6. macos必做的设置_如何在MacOS上设置PHP,CaddyServer和Kirby —以及为什么要这样做

    macos必做的设置 by Philipp Haidenbauer 菲利普·海登鲍尔(Philipp Haidenbauer) 如何在MacOS上设置PHP,CaddyServer和Kirby -以及 ...

  7. 路由器桥接静态ip设置_如何在路由器上设置静态IP地址

    路由器桥接静态ip设置 Routers both modern and antiquated allow users to set static IP addresses for devices on ...

  8. 劳动合同到期提醒怎么设置,怎么在便签上设置合同到期提醒

    劳动合同在职场中起到的作用非常重要,如果劳动合同到期没有及时续签,会给员工和用人单位带来不必要的麻烦.对于上班族来说,合同到期往往需要自己主动提出续签申请,如同自己没有及时申请续签,甚至会影响工资发放 ...

  9. mac 使用移动硬盘设置_如何在Mac上设置和使用照片

    mac 使用移动硬盘设置 Photos-formerly iPhoto-is macOS's default app for organizing photos. Photos integrates ...

  10. android 设置view最大高度,android-在RecyclerView上设置最大高度

    我有一个对话框片段,其中包含线性布局,其中涉及RecyclerView上方的titleText,在最底部,recyclerView下方有一个按钮. 由于recyclerView根据适配器设置的项目数展 ...

最新文章

  1. Citrix XenServer@cloudstack基本功能测试报告2
  2. Java内存分配原理
  3. 给Apache虚拟主机增加端口的方法
  4. leetcode 5. 最长回文子串 暴力法、中心扩展算法、动态规划,马拉车算法(Manacher Algorithm)
  5. ajax返回不刷新页面,Jquery ajax不刷新页面提交action取得返回值
  6. C++rat maze老鼠迷宫算法(附完整源码)
  7. python 绘图 hist bin参数_Python-hist,distplot bin宽度不一致问题的解决方案
  8. 【Java】Gourmet咖啡系统
  9. 机器学习预测港股打新收益
  10. css使两个盒子并列_前端学习CSS
  11. CSS去掉TextBox边框
  12. Google整体架构猜想
  13. 【Sublime Text 3】编译环境
  14. linux下安装配置nginx,Linux下安装与配置nginx
  15. android远程主机强迫关闭了一个现有的连接,远程主机强迫关闭了一个现有的连接解决方法...
  16. mac下如何解压7z
  17. 独步山南之桃花源探秘(上)
  18. LTR 和 CTR 和 所谓的pointwise, pairwise, listwise的关系
  19. tplink720n变无线打印服务器,TL-WR720N路由器无线路由模式设置
  20. 从事软件测试需要学自动化么

热门文章

  1. matlab中nc值是什么意思,科学网-.nc数据读取详细资料matlab2010a及后面的版本-张凌的博文...
  2. RTP传输JPEG图片到VLC实时播放(代码)
  3. 计算机网络 | 划分子网
  4. 网络游戏广告植入案例
  5. 使用kubeadm在CentOS上搭建Kubernetes1.14.3集群
  6. httpwatch使用_使用PHP自动化HTTPWatch
  7. 初中英语语法(017)-关系代词
  8. 挖掘有多深,舞弊就有多大,孙德顺敛财10亿,看图计算如何穿透与识别多层嵌套影子公司!...
  9. 全栈工程师需要了解掌握的技术栈
  10. 引脚复用和引脚重映射