use mkstemp instead tempnam for temp file

tempnam has been marked as obsolete.

Signed-off-by: Alex Sierra <alex.sierra@amd.com>
Change-Id: Ie64d9a351bf386da00a96ceff059f685e11f2cca


[ROCm/ROCR-Runtime commit: e82025bffa]
Esse commit está contido em:
Alex Sierra
2023-03-15 13:56:35 -05:00
commit de Alejandro Sierra Guiza
commit bd8c4079da
@@ -957,12 +957,8 @@ int OpenTempFile(const char* prefix)
#ifdef _WIN32
char dir[MAX_PATH+1];
if (!GetTempPath(sizeof(dir), dir)) { return -1; }
#else // _WIN32
char *dir = NULL;
#endif // _WIN32
char *name = _tempnam(dir, tname.c_str());
if (!name) { return -1; }
#ifdef _WIN32
HANDLE h = CreateFile(
name,
GENERIC_READ | GENERIC_WRITE,
@@ -975,10 +971,10 @@ int OpenTempFile(const char* prefix)
if (h == INVALID_HANDLE_VALUE) { continue; }
return _open_osfhandle((intptr_t)h, 0);
#else // _WIN32
int d = _open(name, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
if (d < 0) { free(name); continue; }
if (unlink(name) < 0) { free(name); _close(d); return -1; }
free(name);
tname += "XXXXXX";
int d = mkstemp((char*)tname.c_str());
if (d < 0) { continue; }
if (unlink(tname.c_str()) < 0) { _close(d); return -1; }
return d;
#endif // _WIN32
}