[fpc-pascal] What happened to FileOpen in trunk?
Michael Van Canneyt
michael at freepascal.org
Wed Dec 27 18:40:05 CET 2017
On Wed, 27 Dec 2017, Giuliano Colla wrote:
> In multi-thread applications in Linux environment, I'm using FIFO's for
> communicating between threads.
>
> In order to make it work properly, the FIFO must be opened in non
> blocking mode. Up to fpc 3.0.4 I've been successfully using code like this:
>
> fdc := FileOpen(myFifo,fmOpenWrite or O_NONBLOCK);
>
> now in trunk the call returns forever an EAGAIN error (as if the
> O_NOBLOCK flag was not forwarded to OS), and to make it work I'm forced
> to use a call to fpOpen:
>
> fdc := fpOpen(myFifo,O_RDWR or O_NONBLOCK);
>
> which works properly.
>
> Is this an fpc new feature or a bug?
Your code was simply lucky to work in the beginning.
It's not guaranteed that passing OS-Specific options to FileOpen will work.
using fpOpen is the correct method, since you're using OS-specific features.
Michael.
More information about the fpc-pascal
mailing list