用于 fgets 失败的最准确的 errno val 是什么?
What is the most accurate errno val to use for fgets failures?
假设我使用 fopen 成功打开文件进行读取,但 fgets 失败。我希望我的函数适当地设置 errno。
有许多与文件操作相关的错误码,但 none 对 "something happened while reading this." 来说似乎是明确的。 fgets 也不设置 errno.
用于读取已打开文件失败的最接近的 errno 值是多少?
如果您的实现定义了它,您可以使用 EIO
。 POSIX 将 EIO
定义为 "Input/output error"。
虽然 C 标准本身很少强制设置 errno
,但假设您使用的是 POSIX 或 POSIX 类系统,fgets
将已经设置errno
到适合您的值。请参阅 fgets
的规范:
指定它可能因 fgetc
定义的任何原因而失败:
这样做的原因是 C 和 POSIX 都根据对 fgetc
或 fputc
.
的重复调用指定了所有复合 stdio 函数
假设我使用 fopen 成功打开文件进行读取,但 fgets 失败。我希望我的函数适当地设置 errno。
有许多与文件操作相关的错误码,但 none 对 "something happened while reading this." 来说似乎是明确的。 fgets 也不设置 errno.
用于读取已打开文件失败的最接近的 errno 值是多少?
如果您的实现定义了它,您可以使用 EIO
。 POSIX 将 EIO
定义为 "Input/output error"。
虽然 C 标准本身很少强制设置 errno
,但假设您使用的是 POSIX 或 POSIX 类系统,fgets
将已经设置errno
到适合您的值。请参阅 fgets
的规范:
指定它可能因 fgetc
定义的任何原因而失败:
这样做的原因是 C 和 POSIX 都根据对 fgetc
或 fputc
.