On 30/08/18 10:15, Henry Vermaak wrote:
On Thu, Aug 30, 2018 at 09:45:00AM +0000, Mark Morgan Lloyd wrote:> On 30/08/18 09:00, Henry Vermaak wrote:> >On Thu, Aug 30, 2018 at 
07:52:54AM +0200, Martin Schreiber wrote:> > >In order to flush textfiles automatically I use> ">  
ttextrec(<thefile>).flushfunc:= ttextrec(<thefile>).inoutfunc;> "> after it is opened.> > >Reading text.inc this morning 
lead me to believe this is the correctway.  This is what the RTL does when opening serial devices inFileOpenFunc(), for example.  There's a comment 
inside Flush() that saysthat InOutFunc() should be used to flush, since the FlushFunc() may notbe assigned.> > I've just checked this and 
unfortunately it doesn't do very much for the> standard device (?) used by WriteLn() etc., i.e. as would be used for a> quick-and-dirty program.
It definitely works for me.  I made a program flush.pas that looks like this:
begin   ttextrec(output).flushfunc := ttextrec(output).inoutfunc;       
writeln('hi there');    sleep(1000);end.
Running `./flush > out.txt` and `tail -F out.txt` shows the outputimmediately, 
while removing the flushfunc assignment causes a delay of asecond before the 
output appeared in the file.

Ah yes, that's it, thanks very much.

WriteLn(StdErr, Format('# Socket %s, clock resolution %8.6f uSec', [socketName, ts.tv_nsec / 1000]));
    ttextrec(StdErr).flushfunc:= ttextrec(StdErr).inoutfunc;
    while true do begin
      ttextrec(Output).flushfunc:= ttextrec(Output).inoutfunc;
      i := fprecv(client, @buff, 1024, 0);

Basically, I was getting confused by the lack of "Error" etc., hence the different names.

I note this works the same for both tail -f and tail -F which have slightly different ways of looking to see if the input file has changed.

--
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk

[Opinions above are the author's, not those of his employers or colleagues]
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to