On Fri, 3 Apr 2015, no reply wrote:

There are some major differences between the way Windows and Unix allow
locking of files with their api's, but is it possible to make a cross
platform LockFile() procedure or function for both unix and windows?

By file locking I of course mean when for example you have to write data
to a file but you want to lock it so no one else can write to the file,
then UnlockFile() when you are done with it.

If not cross platform, shouldn't one of the unix units have a LockFile
function at least?

To the best of my knowledge, unix only has advisory file locking, as you 
discovered.
It works different from windows.

There is some linux specific mandatory locking, I think, but implementing it so it behaves the same as Windows is IMHO not possible.

The FileOpen/FileCreate (and hence TFileStream) implements the various fmShare* 
constants,
but they will only work as expected if all accessing applications are FPC 
applications.
Obviously we cannot guarantee that other apps "play well".

Michael.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to