微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当writefd,buf,count返回0时该怎么办? [重复]

如何解决当writefd,buf,count返回0时该怎么办? [重复]

|                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

除非您明确将长度为0的值传递给
write
,否则在正确的POSIX兼容系统上将永远不会发生这种情况。如果要支持各种模糊的,破旧的旧版专有unice,则可能必须调查每一个上发生了什么,以及返回值零是代替ѭ1还是代替2还是其他错误? ... 我个人认为在2011年不会发生这种情况。还有很多其他事情会在支持这种破旧的旧东西时变得更糟。 注意,按照POSIX:   如果write()在写入任何数据之前被信号中断,则它将返回-1,并将errno设置为[EINTR]。 http://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html     ,您的问题已被询问和讨论。 :)希望此页面有帮助。     ,写入系统调用的结果是该系统调用写入的字节总数。在所有错误情况下,它将返回-1。因此,如果函数返回0,则我们处于未定义状态(基于通用文档)。我会寻找任何特定于平台的原因返回0并根据该研究结果进行处理。如果没有出现平台特定的原因,我将退出。您正在系统调用中遇到未定义的行为,这可能不是很好。 手册页:http://linux.die.net/man/2/write     ,根据
write
man
页面,应检查
errno
。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。