aboutsummaryrefslogtreecommitdiff
path: root/src/libutil/util.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2010-01-29 12:22:58 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2010-01-29 12:22:58 +0000
commit07ffdc28629e537c3811f86b83a93655b73909ec (patch)
tree36b10bdd8ab47d4d0098248206a87ed64b3deb28 /src/libutil/util.cc
parentad529fb89fb34bea9762eccfc9c2ee6f1f2865c0 (diff)
* Added an option "fsync-metadata" to fsync() changes to
/nix/var/nix/db. * Removed the function writeStringToFile since it does (almost) the same thing as writeFile.
Diffstat (limited to 'src/libutil/util.cc')
-rw-r--r--src/libutil/util.cc14
1 files changed, 3 insertions, 11 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 1b86e88d7..711a969e4 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -15,6 +15,7 @@
#include <sys/wait.h>
#include <sys/types.h>
#include <fcntl.h>
+#include <unistd.h>
#include "util.hh"
@@ -220,12 +221,13 @@ string readFile(const Path & path)
}
-void writeFile(const Path & path, const string & s)
+void writeFile(const Path & path, const string & s, bool doFsync)
{
AutoCloseFD fd = open(path.c_str(), O_WRONLY | O_TRUNC | O_CREAT, 0666);
if (fd == -1)
throw SysError(format("opening file `%1%'") % path);
writeFull(fd, (unsigned char *) s.c_str(), s.size());
+ if (doFsync) fdatasync(fd);
}
@@ -413,16 +415,6 @@ Paths createDirs(const Path & path)
}
-void writeStringToFile(const Path & path, const string & s)
-{
- AutoCloseFD fd(open(path.c_str(),
- O_CREAT | O_EXCL | O_WRONLY, 0666));
- if (fd == -1)
- throw SysError(format("creating file `%1%'") % path);
- writeFull(fd, (unsigned char *) s.c_str(), s.size());
-}
-
-
LogType logType = ltPretty;
Verbosity verbosity = lvlInfo;