This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

fflush(NULL) clobbers input streams


Perl configure for 5.22.1 on Cygwin 2.4.0 said this:

--8<---------------cut here---------------start------------->8---
Checking how to flush all pending stdio output...
Your fflush(NULL) works okay for output streams.
Let's see if it clobbers input pipes...
fflush(NULL) seems to behave okay with input streams.
--8<---------------cut here---------------end--------------->8---

I'm reasonably certain that the intervening Perl versions were also this
way, but I didn't keep the log files around unfortunately.

Now, using Cygwin 2.8.x to configure Perl 5.22.4 I got this instead:

--8<---------------cut here---------------start------------->8---
Checking how to flush all pending stdio output...
Your fflush(NULL) works okay for output streams.
Let's see if it clobbers input pipes...
Ouch, fflush(NULL) clobbers input pipes!  We will not use it.
Good, at least fflush(stdin) seems to behave okay when stdin is a pipe.
Sigh. Flushing explicitly all the stdio streams doesn't work.
--8<---------------cut here---------------end--------------->8---

It seems that fflush is only supposed to discard buffered input data on
seekable files, but not pipes (per POSIX.1-2008), so this looks a
regression to me.


Regards,
Achim.
-- 
+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Waldorf MIDI Implementation & additional documentation:
http://Synth.Stromeko.net/Downloads.html#WaldorfDocs


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]