Linux 2.6 Alarm信号中断遇上函数阻塞怎么办
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇文章给大家分享的是有关Linux 2.6 Alarm信号中断遇上函数阻塞怎么办,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Unix
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
中国网络安全的顶层设计
明日之后服务器第一神器
pixiv登陆服务器无效
多级分类数据库设计
软件开发工程师 成都
长丰网络技术咨询优点
边缘网络技术有意义吗
域控服务器添加管理用户密码
新加坡网络安全宣传
网络安全领域整治方案
签名服务器安全说明
西藏软件开发与定制
博雅数据库2021年高考广西
不同服务器为什么不可以一起玩
软件开发项目质量保证大纲
网络安全三大危害
常德 服务器购买
极速数据库修复
天津做软件开发公司
网络安全的培养
一个数据库系统应该具备哪些功能
高防服务器有什么区别
东莞聊天软件开发编程
春考网络技术考试
服务器采集器如何接线
软件开发进度怎么管理不懂编程
网络安全和信息管理鉴定
软件开发项目质量保证大纲
北京OA软件开发招聘
网络安全防火墙书籍