Deutsch   English   Français   Italiano  
<vobkd5$t7np$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Andrey Tarasevich <noone@noone.net>
Newsgroups: comp.lang.c
Subject: Re: Buffer contents well-defined after fgets() reaches EOF ?
Date: Sun, 9 Feb 2025 17:22:43 -0800
Organization: A noiseless patient Spider
Lines: 30
Message-ID: <vobkd5$t7np$1@dont-email.me>
References: <vo9g74$fu8u$1@dont-email.me> <vo9hlo$g0to$1@dont-email.me>
 <vo9khf$ggd4$1@dont-email.me> <vobf3h$sefh$2@dont-email.me>
 <vobjdt$t5ka$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 10 Feb 2025 02:22:46 +0100 (CET)
Injection-Info: dont-email.me; posting-host="4cfa0f591e14cf508d4f626503abd47b";
	logging-data="958201"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/JNigkE5VQ7Fnb4IPZXVkw"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:cvc1tjfMuqpM3B1QzYPt0kaeyxY=
Content-Language: en-US
In-Reply-To: <vobjdt$t5ka$1@dont-email.me>
Bytes: 2165

On Sun 2/9/2025 5:06 PM, Andrey Tarasevich wrote:
> On Sun 2/9/2025 3:52 PM, Lawrence D'Oliveiro wrote:
>> On Sat, 8 Feb 2025 23:12:44 -0800, Andrey Tarasevich wrote:
>>
>>> If `fgets` reads nothing (instant end-of-file), the entire buffer
>>> remains untouched.
>>
>> You mean, only a single null byte gets written.
> 
> No. The buffer is not changed at all in such case.

.... which actually raises an interesting quiz/puzzle/question:

   Under what circumstances `fgets` is expected to return an empty 
string? (I.e. set the [0] entry of the buffer to '\0' and return non-null)?

The only answer I can see right away is:

   When one calls it as `fgets(buffer, 1, file)`, i.e. asks it to read 0 
characters.

This is under assumption that asking `fgets` to read 0 characters is 
supposed to prevent it from detecting end-of-file condition or I/O error 
condition. One can probably do some nitpicking at the current wording... 
but I believe the above is the intent.

-- 
Best regards,
Andrey