From f47596fcfe32ef96ba9b322a414803b25b8ce608 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Fri, 27 Sep 2024 11:41:12 +0200 Subject: [PATCH] manual: Document that feof and ferror are mutually exclusive This is not completely clear from the C standard (although there is footnote number 289 in C11), but I assume that our implementation works this way. Reviewed-by: DJ Delorie --- manual/stdio.texi | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/manual/stdio.texi b/manual/stdio.texi index 8590ae955a..c7a2b4a9a1 100644 --- a/manual/stdio.texi +++ b/manual/stdio.texi @@ -4168,6 +4168,15 @@ check indicators that are part of the internal state of the stream object, indicators set if the appropriate condition was detected by a previous I/O operation on that stream. +The end of file and error conditions are mutually exclusive. For a +narrow oriented stream, end of file is not considered an error. For +wide oriented streams, reaching the end of the underlying file can +result an error if the underlying file ends with an incomplete multibyte +sequence. This is reported as an error by @code{ferror}, and not as an +end of file by @code{feof}. End of file on wide oriented streams that +does not fall into the middle of a multibyte sequence is reported via +@code{feof}. + @deftypevr Macro int EOF @standards{ISO, stdio.h} This macro is an integer value that is returned by a number of narrow -- 2.43.5