【发布时间】:2016-05-19 11:09:03
【问题描述】:
man page for read(2) 列出了调用 read 时可能发生的许多错误。其中一些是良性的,例如EAGAIN。有些显然是不可恢复的,例如EBADF 或 EFAULT。还有一些比较模糊,比如EIO或EINTR。但是,手册页没有断言哪些错误是不可恢复的,哪些只是小问题。是否可以将所有错误归类为致命错误或重要错误?
posix specification for read() 与 linux 手册页非常相似。它还补充说:
没有提到在“不可恢复的错误”之后采取的措施。描述在硬件错误的情况下会发生什么被认为超出了 POSIX.1-2008 的范围。
在讨论 POSIX 系统时,尽管此类操作并未严格包含在范围内,但是否有关于在常见错误场景中如何处理的文献?编写可移植代码时是否有任何额外的注意事项?
【问题讨论】: