Linux 2.6 Alarm信号中断遇上函数阻塞怎么办
发表于:2024-10-01 作者:千家信息网编辑
千家信息网最后更新 2024年10月01日,本篇文章给大家分享的是有关Linux 2.6 Alarm信号中断遇上函数阻塞怎么办,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Unix
千家信息网最后更新 2024年10月01日Linux 2.6 Alarm信号中断遇上函数阻塞怎么办
本篇文章给大家分享的是有关Linux 2.6 Alarm信号中断遇上函数阻塞怎么办,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Unix网络编程 中提到,可以使用alarm + signal 机制产生信号,从而使程序从阻塞的函数调用中跳出,例子如下:
服务进程使用阻塞的监听套接字进入监听,设置3s的alarm,确保3s内无客户端连接,看服务进程是否能在alarm触发后跳出accept阻塞;
server.c
... void alarm_hander(int signo) { printf("alarm...\n"); } void main(){ ... listen(listenfd,queuelen); //alarm test void *oldfun; oldfun = signal(SIGALRM,alarm_hander); alarm(3); printf("before accept\n"); accept(listenfd,NULL,0); printf("after accept\n"); signal(SIGALRM,oldfun); ....}
运行结果:
root@cloud2:~/slp/NetWrokProgram/server# ./a.out
before accept
alarm...
可以看出,程序在处理alarm信号后(alarm_hander打印的"alarm..."信息)继续进入accept阻塞了,此间客户端向该服务端口发出一个连接请求,紧接着服务端打印了如下信息:
after accept
root@cloud2:~/slp/NetWrokProgram/server#
实践证明,Linux在处理完信号中断后,还会进入原有的阻塞代码中,而不是执行阻塞代码的下一条。
以上就是Linux 2.6 Alarm信号中断遇上函数阻塞怎么办,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
阻塞
信号
服务
函数
怎么办
代码
信息
客户
客户端
更多
知识
程序
篇文章
进程
处理
监听
实用
例子
套接字
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库mdb与jdb哪个文件大
乐乐课堂网络安全作文
人工智能软件开发制作
查询hive数据库数据表
服务器租用收费ooo9o
长城服务器修改ip
苏州网络安全公司前景怎么样
sql数据库表的修复
怎么看数据库是不是挂了
万方数据 中外标准数据库
键值数据库有数据和什么组成
软件开发需要懂sql吗
当前都存在哪些网络安全问题
软件开发设计培训机构
传奇服务器如何切换
泗洪进口网络技术保养
数据库设置null值语句
数据库事务处理的几种方式
网络安全知识竞赛的工控安全知识
设备与服务器通信是什么技术
心动网络技术服务有限公司
办公协同软件开发
徐州app软件开发的报价
网络服务器怎么设置变快
网络安全活动计划小学
网络安全就业方向知乎
软件属于电子数据库
网络技术的需要基础
淘宝上的数据库合法吗
大学网络安全班会总结报告