diff options
Diffstat (limited to 'src/util.cpp')
-rw-r--r-- | src/util.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/util.cpp b/src/util.cpp index 15e1adb8b8..c778e51e3b 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -27,6 +27,7 @@ namespace boost { #include <boost/foreach.hpp> #include <openssl/crypto.h> #include <openssl/rand.h> +#include <stdarg.h> #ifdef WIN32 #ifdef _MSC_VER @@ -47,6 +48,7 @@ namespace boost { #ifndef NOMINMAX #define NOMINMAX #endif +#include <io.h> /* for _commit */ #include "shlobj.h" #endif @@ -147,7 +149,7 @@ void RandAddSeedPerfmon() { RAND_add(pdata, nSize, nSize/100.0); memset(pdata, 0, nSize); - printf("%s RandAddSeed() %d bytes\n", DateTimeStrFormat("%x %H:%M", GetTime()).c_str(), nSize); + printf("RandAddSeed() %d bytes\n", nSize); } #endif } @@ -870,6 +872,27 @@ void CreatePidFile(const boost::filesystem::path &path, pid_t pid) } } +bool RenameOver(boost::filesystem::path src, boost::filesystem::path dest) +{ +#ifdef WIN32 + return MoveFileExA(src.string().c_str(), dest.string().c_str(), + MOVEFILE_REPLACE_EXISTING); +#else + int rc = std::rename(src.string().c_str(), dest.string().c_str()); + return (rc == 0); +#endif /* WIN32 */ +} + +void FileCommit(FILE *fileout) +{ + fflush(fileout); // harmless if redundantly called +#ifdef WIN32 + _commit(_fileno(fileout)); +#else + fsync(fileno(fileout)); +#endif +} + int GetFilesize(FILE* file) { int nSavePos = ftell(file); |