[fpc-pascal]How to Lock a file?

Michael Van Canneyt michael.vancanneyt at wisa.be
Thu Aug 22 17:35:31 CEST 2002


On Thu, 22 Aug 2002, mili wrote:

> Hello, Every one
>
> I opened a file with TFileStream, and I don't want any other program to access
> this file. So I try to lock it with FLock function in unit Linux as
> following:
>
> >>>>>>
> var
>   fs : TFileStream;
>   h  : integer;
> begin
>   fs:=TFileStream.Create('test.dat',fmOpenReadWrite);
>   h:=fs.Handle;
>   if LockF(h,LOCK_EX) then writeln('Lock OK!') else writeln('Lock Failed!');
>   readln;  //  ----> Now, I test if I can still open this file with other
> program
>   fs.Free;
> end.
> <<<<<<
>
> But, Still, I can open the same file with other programs.
> So, Can you tell me how to lock a file correctly with free pascal?

This is not possible on linux. Only other programs that also place a
lock will fail when they try to place the lock; locking is advisory at
best.

Michael.





More information about the fpc-pascal mailing list