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

写入前如何检查管道是否打开?

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

写入前如何检查管道是否打开?

正确的方法是测试的返回码,

write
然后还要检查
errno

if (write(pipe, msg, strlen(msg)) == -1) {    if (errno == EPIPE) {            }}

但是请稍等:写入封闭的管道不仅会返回-1

errno=EPIPE
,而且还会发送一个
SIGPIPE
终止进程的信号:

EPIPE fd连接到读数端关闭的管道或插座。发生这种情况时,写入过程还将收到SIGPIPE信号。

因此,在进行测试之前,您还需要 忽略

SIGPIPE

if (signal(SIGPIPE, SIG_IGN) == SIG_ERR)    perror("signal");


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

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

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