develooper Front page | perl.perl5.porters | Postings from September 2013

metaconfig tweak? (was Re: [perl #7586] STDOUT is not flushed beforeexec().)

Thread Previous | Thread Next
From:
Nicholas Clark
Date:
September 16, 2013 10:20
Subject:
metaconfig tweak? (was Re: [perl #7586] STDOUT is not flushed beforeexec().)
Message ID:
20130916102024.GB8815@plum.flirble.org
On Mon, Sep 16, 2013 at 10:09:02AM +0100, Nicholas Clark wrote:

> It turns out* that $Config{fflushNULL} on HP-UX is *STILL* undef, because
> fflush(NULL) wrongly closes STDIN if STDIN is a pipe (which is what the
> Configure test probes for).

Is it worth documenting the specific failure case more clearly? Something
like this?

diff --git a/U/perl/fflushall.U b/U/perl/fflushall.U
index 783a7f7..a4398dd 100644
--- a/U/perl/fflushall.U
+++ b/U/perl/fflushall.U
@@ -13,8 +13,9 @@
 	d_sysconf i_unistd d_stdio_stream_array stdio_stream_array i_stdlib
 ?MAKE:	-pick add $@ %<
 ?S:fflushNULL:
-?S:	This symbol, if defined, tells that fflush(NULL) does flush
-?S:	all pending stdio output.
+?S:	This symbol, if defined, tells that fflush(NULL) correctly flushes
+?S:	all pending stdio output without side effects. In particular, on some
+?S:	platforms calling fflush(NULL) *still* corrupts STDIN if it is a pipe.
 ?S:.
 ?S:fflushall:
 ?S:	This symbol, if defined, tells that to flush
@@ -24,8 +25,9 @@
 ?S:	even be probed for and will be left undefined.
 ?S:.
 ?C:FFLUSH_NULL:
-?C:	This symbol, if defined, tells that fflush(NULL) does flush
-?C:	all pending stdio output.
+?C:	This symbol, if defined, tells that fflush(NULL) correctly flushes
+?C:	all pending stdio output without side effects. In particular, on some
+?C:	platforms calling fflush(NULL) *still* corrupts STDIN if it is a pipe.
 ?C:.
 ?C:FFLUSH_ALL:
 ?C:	This symbol, if defined, tells that to flush

Nicholas Clark

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About