I have not worked so much with files: I am wondering about possible issues with accessing remote files on another computer. What if the distant application crashes and doesn’t close the file ?
My aim is to use this win32 function:
HFILE WINAPI OpenFile(LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle);
Using the flag OF_SHARE_EXCLUSIVE assures me that any concurrent access will be denied
(because several machines are writing to this file from time to time).
But what if the file is left open ? (application crash for example ?)
How to put the file back to normal ?
Then the O/S should close the file when it cleans up after the “crashed” application.
This won’t help with a “hung” application (an application which stays open but does nothing forever).
I don’t know what the issues are with network access: for example if the network connection disappears when a client has the file open (or if the client machine switches off or reboots). I’d guess there are timeouts which might eventually close the file on the server machine, but I don’t know.
It might be better to use a database engine instead of a file: because database engines are explicitly built to handle concurrent access, locking, timeouts, etc.