Quoting Dag Wieers <[EMAIL PROTECTED]>:
> Revelation cannot handle a disk-full situation. I just lost all my 
> passwords (file was 0 bytes in size).

Hm, right. It is not trivial to detect disk-full situations, because when you
write data to a file what happens is basically:

1. Open file for writing, and truncate size to 0 bytes
2. Write data to file

In a disk full situation, step 2 will fail, but the file will already be
truncated by step 1. The best would be if the operating system provided an
atomic function for writing data to a file, but I'm not sure if this exists in
POSIX.

I could always write to a temp-file and move it over the original file, but in
that case this will break any hard-links to the file because it has a different
inode. One could also check for free space on disk before saving, but not all
media correctly report free diskspace, and this is impossible to do over network
protocols (webdav for example).

I will have a closer look at this once I'm back home though, would be nice to
avoid these situations.

Reply via email to