diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2011-02-13 19:48:30 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2011-02-13 19:48:30 -0800 |
commit | 573694f9bf9cc019c9a4d265fbcb04c0fbde78e1 (patch) | |
tree | 52e3a5ad426df38d3ffe46fbf419185f6c3946a3 /src/misc/util | |
parent | 8cc7b43865be44fd4ee77b3e2fe254dc24981a7c (diff) | |
download | abc-573694f9bf9cc019c9a4d265fbcb04c0fbde78e1.tar.gz abc-573694f9bf9cc019c9a4d265fbcb04c0fbde78e1.tar.bz2 abc-573694f9bf9cc019c9a4d265fbcb04c0fbde78e1.zip |
Fixing g++ compilation issue for tmpFile().
Diffstat (limited to 'src/misc/util')
-rw-r--r-- | src/misc/util/utilFile.c | 73 |
1 files changed, 29 insertions, 44 deletions
diff --git a/src/misc/util/utilFile.c b/src/misc/util/utilFile.c index 2c40c32c..69d84c29 100644 --- a/src/misc/util/utilFile.c +++ b/src/misc/util/utilFile.c @@ -25,6 +25,14 @@ #include <fcntl.h> #include <sys/stat.h> +#if defined(_MSC_VER) +#include <Windows.h> +#include <process.h> +#include <io.h> +#else +#include <unistd.h> +#endif + #include "abc_global.h" ABC_NAMESPACE_IMPL_START @@ -33,12 +41,6 @@ ABC_NAMESPACE_IMPL_START /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// -#if defined(_MSC_VER) - -#include <Windows.h> -#include <process.h> -#include <io.h> - //////////////////////////////////////////////////////////////////////// /// FUNCTION DEFINITIONS /// //////////////////////////////////////////////////////////////////////// @@ -56,6 +58,7 @@ ABC_NAMESPACE_IMPL_START ***********************************************************************/ static ABC_UINT64_T realTimeAbs() // -- absolute time in nano-seconds { +#if defined(_MSC_VER) LARGE_INTEGER f, t; double realTime_freq; int ok; @@ -65,20 +68,16 @@ static ABC_UINT64_T realTimeAbs() // -- absolute time in nano-seconds ok = QueryPerformanceCounter(&t); assert(ok); return (ABC_UINT64_T)(__int64)(((__int64)(((ABC_UINT64_T)t.LowPart | ((ABC_UINT64_T)t.HighPart << 32))) * realTime_freq * 1000000000)); -} - #endif - - - -// Opens a temporary file with given prefix and returns file descriptor (-1 on failure) -// and a string containing the name of the file (to be freed by caller). +} /**Function************************************************************* - Synopsis [] + Synopsis [Opens a temporary file.] - Description [] + Description [Opens a temporary file with given prefix and returns file + descriptor (-1 on failure) and a string containing the name of the file + (to be freed by caller).] SideEffects [] @@ -87,9 +86,22 @@ static ABC_UINT64_T realTimeAbs() // -- absolute time in nano-seconds ***********************************************************************/ int tmpFile(const char* prefix, const char* suffix, char** out_name) { -#if !defined(_MSC_VER) +#if defined(_MSC_VER) + int i, fd; + *out_name = (char*)malloc(strlen(prefix) + strlen(suffix) + 27); + for (i = 0; i < 10; i++){ + sprintf(*out_name, "%s%I64X%d%s", prefix, realTimeAbs(), _getpid(), suffix); + fd = _open(*out_name, O_CREAT | O_EXCL | O_BINARY | O_RDWR, _S_IREAD | _S_IWRITE); + if (fd == -1){ + free(*out_name); + *out_name = NULL; + } + return fd; + } + assert(0); // -- could not open temporary file + return 0; +#else int fd; - *out_name = (char*)malloc(strlen(prefix) + strlen(suffix) + 7); assert(*out_name != NULL); sprintf(*out_name, "%sXXXXXX", prefix); @@ -98,7 +110,6 @@ int tmpFile(const char* prefix, const char* suffix, char** out_name) free(*out_name); *out_name = NULL; }else{ - // Kludge: close(fd); unlink(*out_name); @@ -108,35 +119,11 @@ int tmpFile(const char* prefix, const char* suffix, char** out_name) free(*out_name); *out_name = NULL; } - -// assert( 0 ); - // commented out because had problem with g++ saying that - // close() and unlink() are not defined in the namespace - } return fd; - -#else - int i, fd; - *out_name = (char*)malloc(strlen(prefix) + strlen(suffix) + 27); - for (i = 0; i < 10; i++){ - sprintf(*out_name, "%s%I64X%d%s", prefix, realTimeAbs(), _getpid(), suffix); - fd = _open(*out_name, O_CREAT | O_EXCL | O_BINARY | O_RDWR, _S_IREAD | _S_IWRITE); - if (fd == -1){ - free(*out_name); - *out_name = NULL; - } - return fd; - } - assert(0); // -- could not open temporary file - return 0; #endif } - -//mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm - - /**Function************************************************************* Synopsis [] @@ -165,8 +152,6 @@ int main(int argc, char** argv) } */ - - //////////////////////////////////////////////////////////////////////// /// END OF FILE /// //////////////////////////////////////////////////////////////////////// |