[fpc-pascal] POpen en PClose

Michael Van Canneyt michael at freepascal.org
Mon Jul 20 15:40:28 CEST 2026



On Mon, 20 Jul 2026, Adriaan van Os via fpc-pascal wrote:

>
>
> On 20/07/2026 11:40, Marco van de Voort via fpc-pascal wrote:
>> 
>> Op 20-7-2026 om 10:13 schreef Adriaan van Os via fpc-pascal:
>>> 
>>> I am looking at the implementation of POpen and PClose in the 
>>> runtime-library for Darwin (or more general for UNIX). It seems like it 
>>> doesn't call into libc popen and pclose, but instead follows its own 
>>> implementation in unix.pp in POpen_internal. I am just curious to know the 
>>> reason.
>>> 
>> Phew, that was over twenty years ago, but afaik the reason is that libc 
>> popen and pclose us C FILE descriptors, which the RTL in general doesn't 
>> use to avoid a mix of functions with pascal and C file types.
>> 
>> So popen/pclose are a more high level (FILE * using) part of libc, while we 
>> tend to only use the basis.
>
> Ah, so that means that I couldn't just call naively into libc popen with 
> FileRec.Handle ?

Indeed you cannot do that.

Michael.


More information about the fpc-pascal mailing list