These are not quite the same.  Using setvbuf() forces flushing for every 
character, while explicit use of fflush() only flushes after end-of-line 
characters (as implimented in glpk).  I perfer glpk's current implementation.  
--Bill

> -----Original Message-----
> From: Tor Myklebust [mailto:[email protected]] 
> Sent: Monday, September 14, 2009 12:19 PM
> To: Andrew Makhorin
> Cc: Hart, William E; [email protected]
> Subject: Re: [Help-glpk] Feature request - option to flush output
> 
> On Mon, 14 Sep 2009, Andrew Makhorin wrote:
> 
> >> By default, IO streams are not regularly flushed; they are 
> buffered 
> >> in the computer until 'enough' IO has been done (or until 
> the stream 
> >> is closed).
> >
> >> I'm piping glpsol through some Python code and this buffering is 
> >> creating a noticable delay in my processing.  What I'd like is an 
> >> option that enables explicit flushing of glpsol's output.  For 
> >> example, after each status line is printed, you might execute:
> >
> >>   flush(stdout)
> >
> >> (or do "cout << flush" in C++).
> >
> > Exactly this feature was added in glpk 4.35:
> >
> >   The statement "if (c = '\n') fflush(stdout)" was added to the
> >   internal routine xputc to provide "real-time" terminal output.
> 
> = versus == aside, isn't this the wrong way to do it?  You 
> can already configure the buffering behaviour of a FILE* 
> using setvbuf(); just say "setvbuf(stdout, (char*)0, _IOLBF, 0);".
> 
> 





_______________________________________________
Help-glpk mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to