[fpc-pascal] Pipe buffering, accessing C-style stdin/stdout

Marco van de Voort marcov at stack.nl
Sun Apr 1 22:06:39 CEST 2007

> After a lot of googling and experimenting, I think I have managed to 
> make it work, but only in C code, and I want it to run in Pascal. The 
> key to make it work in C was to call setvbuf at the right time, to set 
> the buffering mode for stdin/stdout. The problem with FPC is that I 
> can't find any straightforward way to either get PFile-style 
> stdin/stdout from the Text-style input/output (surely there is a 
> connection?)

Yes. PFile _IS_ Text style.  PFile is the C wrapper implementing buffer,
Text the analogue Pascal buffering.  I assume that settextbuf to 0 didn't work?

( http://www.freepascal.org/docs-html/rtl/system/settextbuf.html )

If that doesn't work, you need to go back to the raw unbuffered IO, do a
IOCTL if necessary.  FPOpen, FPClose, FPWrite, FPRead

Moreover, how does lazarus deal with this?

More information about the fpc-pascal mailing list