In Linux environment the following code:

  try
    USBOut := FileOpen(UsbDev,fmOpenWrite);
  except
    result := True;
  end;

is used in a Lazarus application to get a handle to write to an USB device, and did work fine in fpc 2.4.

I migrated the application to Lazarus 1.0 wich uses fpc 2.6, and it stopped working. FileOpen returns -1, without rising an exception, which made me struggle to find out what was happening.

To make it work I had to change from FileOpen to FileCreate, but I fail to understand the rationale behind that. The file does exist because it's a physical device (/dev/ttyACM0), its existence is checked before that code, and the call to FileOpen(UsbDev,fmOpenRead) just before the above lines works properly so I don't understand while it should be created, and not just opened.

Moreover I don't understand why the call returns a -1, meaning that the Open failed, without rising an exception.

Is there a good reason for this change from 2.4 to 2.6 or it's just a bug?

--
Giuliano Colla

Before activating the tongue, make sure that the brain is connected (anonymous)
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to