ajk@goanna.oz (Alan Kent) (04/27/87)
Please Enlighten me.
I have been looking through all the manuals I can lay my hands on, but
nothing seems to help.
I want to lock a file so that no-one else will touch it while I do
I/O on the file (reads and possibly writes).
When I open it, it may only be for read access, but I might want to
write to it later (to save a new version). I have tried Lock()ing
the file for exclusive access, but then Open() wont work (because
its locked). Doing the Open() first makes the Lock() fail. Is there
any way of using Lock() to give myself exclusive access to a file
and have it open at the same time for I/O? I want to make sure I
dont allow the user to modify the memory version of a file if I cannot
save it later! (I am writing a sort of editor). Obviously I dont want
to write to the file if the user does not change it.
At present, I exclusive Lock() the file and if that works, I quickly
UnLock() and Open() it. This is not perfect but its the best I can
think of. Anyone got any better ideas?
Thanks in advance
Alan Kent UUCP: {seismo,hplabs,mcvax,ukc,nttlab}
Dept of Computing !munnari!goanna.oz!ajk
Royal Melb. Inst. of Tech. ACSnet: ajk@goanna.oz
124 La Trobe St ARPA: munnari!goanna.oz!ajk@SEISMO.ARPA
Melbourne, Victoria 3000
AUSTRALIAphillip@cbmvax.cbm.UUCP (Phillip Lindsay CATS) (04/27/87)
in article <798@goanna.oz>, ajk@goanna.oz (Alan Kent) says: > Keywords: locking files with amigados > > Please Enlighten me. > > I have been looking through all the manuals I can lay my hands on, but > nothing seems to help. > > I want to lock a file so that no-one else will touch it while I do > I/O on the file (reads and possibly writes). ....[crunch] > At present, I exclusive Lock() the file and if that works, I quickly > UnLock() and Open() it. This is not perfect but its the best I can > think of. Anyone got any better ideas? > There is new Open() mode offered in the 1.2 release. (Look in the 1.2 "dos.h" header file). MODE_READWRITE = 1004 file = Open("foo",MODE_READWRITE); /* opens old file with exclusive lock */ -phil ============================================================================== Phillip (Flip) Lindsay - Commodore Business Machines - Amiga Technical Support UUCP: {ihnp4|seismo|caip}!cbmvax!phillip - Phone: (215) 431-9180 No warranty is implied or otherwise given in the form of suggestion or example. Any opinions found here are of my making.
andy@cbmvax.UUCP (Andy Finkel) (07/18/87)
In article <798@goanna.oz> ajk@goanna.oz (Alan Kent) writes: >Please Enlighten me. > >I want to lock a file so that no-one else will touch it while I do >I/O on the file (reads and possibly writes). > >When I open it, it may only be for read access, but I might want to >write to it later (to save a new version). The easiest way to do this is Open the file MODE_READWRITE (1004) You can read from it, write to it, whatever, and you have exclusive access. (As long as the file already exists, anyway. You can read from a file opened with MODE_NEWFILE, by the way) The names are actually slightly inaccurate...you can read from a file opened for write access with no problem. andy finkel -- andy finkel {ihnp4|seismo|allegra}!cbmvax!andy Commodore-Amiga, Inc. "The goal of Computer Science is to build something that will last at least until we've finished building it." Any expressed opinions are mine; but feel free to share. I disclaim all responsibilities, all shapes, all sizes, all colors.