c - 用于 fgets 失败的最准确的 errno 值是什么?

标签 c fgets errno

假设我使用 fopen 成功打开文件进行读取,但 fgets 失败。我希望我的函数能够适本地设置 errno。

有许多与文件操作相关的 errno 值,但似乎没有一个明确表示“阅读本文时发生了一些事情”。 fgets 也不设置 errno。

从已打开的文件读取失败时使用的最接近的 errno 值是什么?

最佳答案

虽然 C 标准本身很少要求设置 errno,但假设您使用的是 POSIX 或类 POSIX 系统,fgets 将已经设置 errno 为适合您的值。请参阅 fgets 的规范:

它指定它可能会因为 fgetc 定义的任何原因而失败:

这样做的原因是 C 和 POSIX 都通过重复调用 fgetcfputc 来指定所有复合 stdio 函数。

关于c - 用于 fgets 失败的最准确的 errno 值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46737158/

相关文章:

c - 解释这个 C 代码的输出?

c - fgets() 不等待输入

c - 长时间阅读后出现段错误

c - 我的库应该处理错误指针输入的 SIGSEGV 吗?

c - 从 C 中的函数返回结构

c - 更新函数中的结构数组并将其作为参数传递给其他函数

c++ - 使用 popen 而不阻塞

c - 为什么errno的值打印不出来?

python - 防止 IOError : [Errno 4] Interrupted system call

c - 使用 "getchar"更新数组中的值