我正在尝试检查
fread()
何时会引发错误,因此我使用ferror()
。chunk = fread(buf, 1, 100, file);
if (ferror(file))
{
return errno;
}
然而,ferror()
手册(man 3 ferror
或man ferror
)表示:
错误
这些函数不应该失败,也不会设置外部变量errno
。
那么,当文件被读取时,尽管fread()
和ferror()
没有设置errno
,我怎样才能知道发生了什么类型的错误?
ferror
可以告诉你发生了错误,但由于fread
没有记录设置errno
,因此如果他能够知道错误的具体原因,他如何知道实际的错误是什么,因为errno
不会反映触发流错误状态的具体错误条件? - WhozCraig