DESC
We always need to open the file with both read and write access.
EDESC
We always need to open the file with both read and write access: we use read
because we need to get the current contents before commiting a transaction,
and write because of fcntl locking.

