Implementation of race free writing of configuration files
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Safewrite is a library for race free updates of existing files on POSIX systems.

When updating an existing file, it is often overlooked how difficult it is to
make sure that the file doesn't get hopelessly corrupted if something bad
happens mid operation. Something bad can be the disk filling up, the program
crashing, or the program receiving a signal (for example, due to system wide
shutdown). All the above might happen at an unexpected point in time, and if
the file is not correctly written, might result in a corrupt file.

Safewrite provides an interface for opening and closing the file that, if used,
gives the assurance that either the complete old or the complete new version of
the file is left on disk, regardless of when the operation is interrupted.

Safewrite was written by Shachar Shemesh.

Safewrite is Copyright (C) 2010,2011 by Lingnu Open Source Consulting Ltd.

Safewrite is free software, and is distributed under the MIT license.

If you pull a fresh copy from the repository, you will need a fairly complete
autotools package installed (autoconf, automake, aclocal and libtool). You need
to then run "autoreconf -i" in order to get a compilable source tree.