【发布时间】:2016-10-24 09:03:00
【问题描述】:
我正在尝试检查fread() 何时引发错误,因此我使用ferror()。
chunk = fread(buf, 1, 100, file);
if (ferror(file))
{
return errno;
}
但是,ferror() 手册页说:
错误这些函数应该不会失败,也不要设置外部变量 errno。
那么,虽然fread() 和ferror() 没有设置errno,但我如何知道读取文件时发生的错误类型?
【问题讨论】:
-
你读过fread(3) 吗?它有一个记录在案的错误行为!
-
是的,它没有提到设置errno的任何内容。
-
@BasileStarynkevitch 我认为他的观点正是如此。当然
ferror可以告诉您发生了错误,但由于fread没有 记录为设置errno,他怎么知道实际错误是什么,如果他完全可以,因为errno不会反映点亮流错误状态的具体错误情况?