如何在Windows上通过调用tmpfile()而不使用tmpnam()来获取文件名?
std::FILE* tmpf = std::tmpfile(); // Opens a temp file
自己做
const char *name = tmpnam(NULL); // Get temp name
FILE *fp = fopen(name, "w"); // Create the file
// ...
fclose(fp);
remove(name);
最佳答案
一种方法是从FILE
转换为HANDLE
std::FILE* tmpf = std::tmpfile();
HANDLE handle = (HANDLE)_get_osfhandle(_fileno(tmpf));
然后使用
GetFinalPathNameByHandleW
获取文件名(需要Vista或更高版本)char buf[MAX_PATH];
GetFinalPathNameByHandleA(handle, buf, MAX_PATH, VOLUME_NAME_DOS);
关于c++ - 在Windows上从tmpfile()获取文件名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37627855/