31#define S_IREAD S_IRUSR
33#error S_IREAD is undefined
39#define S_IWRITE S_IWUSR
41#error S_IWRITE is undefined
45#if defined(_MSC_VER) || defined(__MINGW32__)
76static ABC_UINT64_T realTimeAbs()
83 ok = QueryPerformanceFrequency(&f);
assert(ok);
84 realTime_freq = 1.0 / (__int64)(((ABC_UINT64_T)f.LowPart) | ((ABC_UINT64_T)f.HighPart << 32));
86 ok = QueryPerformanceCounter(&t);
assert(ok);
87 return (ABC_UINT64_T)(__int64)(((__int64)(((ABC_UINT64_T)t.LowPart | ((ABC_UINT64_T)t.HighPart << 32))) * realTime_freq * 1000000000));
106int tmpFile(
const char* prefix,
const char* suffix,
char** out_name)
108#if defined(_MSC_VER) || defined(__MINGW32__)
111 for (i = 0; i < 10; i++){
112 sprintf(*out_name,
"%s%I64X%d%s", prefix, realTimeAbs(), _getpid(), suffix);
113 fd = _open(*out_name, O_CREAT | O_EXCL | O_BINARY | O_RDWR, _S_IREAD | _S_IWRITE);
126 sprintf(*out_name,
"%s%08d%s", prefix, seq++, suffix);
127 fd = open(*out_name, O_CREAT | O_EXCL | O_RDWR, S_IREAD | S_IWRITE);
136 assert(*out_name != NULL);
137 sprintf(*out_name,
"%sXXXXXX", prefix);
138 fd = mkstemp(*out_name);
146 strcat(*out_name, suffix);
147 fd = open(*out_name, O_CREAT | O_EXCL | O_RDWR, S_IREAD | S_IWRITE);
202 static FILE* dummy_file = NULL;
205#if !defined(_MSC_VER) && !defined(__MINGW32)
206 dummy_file = fopen(
"/dev/null",
"wb");
208 dummy_file = fopen(
"NUL",
"wb");
212#if defined(__va_copy)
213 __va_copy(args_copy, args);
216 va_copy(args_copy, args);
221 n = vfprintf(dummy_file, format, args);
225 vsprintf(ret, format, args);
226#if !defined(__va_copy) && defined(va_copy)
237 va_start(args, format);
#define ABC_ALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
char * vnsprintf(const char *format, va_list args)
int tmpFile(const char *prefix, const char *suffix, char **out_name)
char * nsprintf(const char *format,...)