|
|||||||||
|
|||||||||
Locking a file |
You can lock a file for such purposes as maintaining a hit counter on a website, by using OmniMark's omvfs library.
To lock a file for such a hit counter, create a program like this one:
include "omvfs.xin" process local VFSFile counter-file local stream hit-count ; set up a vfsfile for the counter set counter-file to vfsOpen "counter.txt" for vfs-read-write vfsLock counter-file ; read and increment the hit-count set hit-count to "d" % vfsRead counter-file + 1 ; output the hit-count output hit-count ; output the updated counter vfsMoveCursor counter-file to 0 set vfsWrite counter-file to hit-count vfsUnlock counter-file ; a catch block for handling errors in this program catch #external-exception identity catch-id message catch-msg put #ERROR 'An error occurred while accessing a VFSFile' put #ERROR '%g(catch-id) : %g(catch-msg)%n'
This program does the following:
hit-count
, and the vfsFile counter-file
.
counter-file
to the file named "counter.txt" by using vfsOpen.
counter-file
for the duration of this program.
hit-count
by adding 1 to the contents of counter-file
.
hit-count
.
counter-file
to the value of hit-count
using vfsWrite, thus updating the file "c:\counter.txt".
counter-file
with the omvfs library function vfsUnlock so another process can update it.
---- |