summaryrefslogtreecommitdiffstats
path: root/src/misc/util/utilFile.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-02-13 19:48:30 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2011-02-13 19:48:30 -0800
commit573694f9bf9cc019c9a4d265fbcb04c0fbde78e1 (patch)
tree52e3a5ad426df38d3ffe46fbf419185f6c3946a3 /src/misc/util/utilFile.c
parent8cc7b43865be44fd4ee77b3e2fe254dc24981a7c (diff)
downloadabc-573694f9bf9cc019c9a4d265fbcb04c0fbde78e1.tar.gz
abc-573694f9bf9cc019c9a4d265fbcb04c0fbde78e1.tar.bz2
abc-573694f9bf9cc019c9a4d265fbcb04c0fbde78e1.zip
Fixing g++ compilation issue for tmpFile().
Diffstat (limited to 'src/misc/util/utilFile.c')
-rw-r--r--src/misc/util/utilFile.c73
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 ///
////////////////////////////////////////////////////////////////////////