Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
July 30, 2008 file locks | ||||
---|---|---|---|---|
| ||||
Is there any way to lock a file in D. I'm writing an application that needs to support concurrent access to a file, and would like to lock the file during write operations to prevent other process instances from reading invalid data. |
July 30, 2008 Re: file locks | ||||
---|---|---|---|---|
| ||||
Posted in reply to llee | Reply to llee,
> Is there any way to lock a file in D. I'm writing an application that
> needs to support concurrent access to a file, and would like to lock
> the file during write operations to prevent other process instances
> from reading invalid data.
>
there may be some D library calls to do it (I haven't seen one, or looked) but if there isn't, you can always fall back on however you would do it in C.
|
July 30, 2008 Re: file locks | ||||
---|---|---|---|---|
| ||||
Posted in reply to BCS | BCS wrote:
> Reply to llee,
>
>> Is there any way to lock a file in D. I'm writing an application that
>> needs to support concurrent access to a file, and would like to lock
>> the file during write operations to prevent other process instances
>> from reading invalid data.
>>
>
> there may be some D library calls to do it (I haven't seen one, or looked) but if there isn't, you can always fall back on however you would do it in C.
On POSIX systems, file locking is purely cooperative. There is no way to prevent users from opening your file if they so choose. For this reason, I consider file locking largely useless beyond the scope of how a specific application behaves with respect to files it controls.
Sean
|
July 30, 2008 Re: file locks | ||||
---|---|---|---|---|
| ||||
Posted in reply to llee | On Wed, 30 Jul 2008 20:14:59 +0400, llee <llee@goucher.edu> wrote:
> Is there any way to lock a file in D. I'm writing an application that needs to support concurrent access to a file, and would like to lock the file during write operations to prevent other process instances from reading invalid data.
In Tango, when you create a FileConduit you specify a Share attribute that affects concurrent file access policy:
enum Share : ubyte {
None=0, /// no sharing
Read, /// shared reading
ReadWrite, /// open for anything
}
Is it what are you looking for?
|
July 30, 2008 Re: file locks | ||||
---|---|---|---|---|
| ||||
Posted in reply to Koroskin Denis | Koroskin Denis Wrote:
> On Wed, 30 Jul 2008 20:14:59 +0400, llee <llee@goucher.edu> wrote:
>
> > Is there any way to lock a file in D. I'm writing an application that needs to support concurrent access to a file, and would like to lock the file during write operations to prevent other process instances from reading invalid data.
>
> In Tango, when you create a FileConduit you specify a Share attribute that affects concurrent file access policy:
>
> enum Share : ubyte {
> None=0, /// no sharing
> Read, /// shared reading
> ReadWrite, /// open for anything
> }
>
> Is it what are you looking for?
Looks good, but I'm using Phobos.
|
July 31, 2008 Re: file locks | ||||
---|---|---|---|---|
| ||||
Posted in reply to llee | llee wrote:
> Koroskin Denis Wrote:
>
>> On Wed, 30 Jul 2008 20:14:59 +0400, llee <llee@goucher.edu> wrote:
>>
>>> Is there any way to lock a file in D. I'm writing an application that needs to support concurrent access to a file, and would like to lock the file during write operations to prevent other process instances from reading invalid data.
>> In Tango, when you create a FileConduit you specify a Share attribute that affects concurrent file access policy:
>>
>> enum Share : ubyte {
>> None=0, /// no sharing
>> Read, /// shared reading
>> ReadWrite, /// open for anything
>> }
>>
>> Is it what are you looking for?
>
> Looks good, but I'm using Phobos.
AFAIK, on windows, opening a file in binary mode locks the file from being opened. it displays "Already in use" message. i wrote a program to lock files in vb6 years ago and it worked. Dont know about Linux and it's behavior on such thing
|
Copyright © 1999-2021 by the D Language Foundation