ferror()的消息文本返回值

Not*_*ist 7 c c++ io error-handling

如何获取由返回的错误代码的消息int ferror(FILE*)?因为errnochar * strerror(int).什么是ferror返回的代码?如果char * strerror(int)对此也有好处,那么我需要一个参考(我没有找到这种情况的任何指标).

Som*_*ude 9

这个参考页面:

所述FERROR()函数将测试对于流的错误指示器通过流指向.

这意味着ferror返回一个布尔值,告诉您是否有错误,仅此而已.所有标准FILE*功能也会设置errno错误.

  • 只是为了一个注释。[man Ferr](https://linux.die.net/man/3/ferror): _这些函数不应该失败并且不设置外部变量 errno._ (2认同)
  • @JensAlfke 请注意,[C 标准规定](https://port70.net/~nsz/c/c11/n1570.html#7.5p3):“errno 的值可以通过库函数调用设置为非零,无论是或者不存在错误,前提是本国际标准的函数描述中未记录 errno 的使用。” 这意味着如果一个函数没有被记录来设置“errno”,它可以以任何它想要的方式自由地修改该值。因此,如果您的实现和 C 标准没有记录函数中“errno”的使用,则在调用该函数时您不能依赖它来保持不变。 (2认同)