栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在多线程环境中recv()不会被信号中断

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在多线程环境中recv()不会被信号中断

通常,信号不会通过中断系统调用

EINTR
。从历史上看,有两种可能的信号传递行为:BSD行为(当被信号中断时,系统调用将自动重新启动)和Unix系统V行为(当被信号中断时,系统调用将返回-1并
errno
设置为
EINTR
)。Linux(内核)采用了后者,但是GNU
C库开发人员(正确地)认为BSD行为更为理智,在现代Linux系统上,调用
signal
(这是一个库函数)会导致BSD行为。

POSIX允许任何一种行为,因此建议始终使用

sigaction
SA_RESTART
根据需要的行为选择设置或省略标志的位置。请参阅
sigaction
此处的文档:

http://www.opengroup.org/onlinepubs/9699919799/functions/sigaction.html



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/426390.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号