open_excl - open a file for exclusive writing
(const char *filename
open_excl opens the file filename
for writing and returns the file
handle. The file may not exist before the call to open_excl
. The file
will be created with mode 0600.
If there was an error creating the file, open_excl returns -1 and sets errno
Since open_excl relies on the O_EXCL flag to open, it does not work reliably
over NFS (the NFS protocol is broken) and must be emulated using a lock file
(create a file with a unique file name and link(2) it to the lock file. Then
stat the lock file and see if the link count is 2).