gpt4 book ai didi

c++ - 在 Windows 上从 tmpfile() 获取文件名

转载 作者:行者123 更新时间:2023-11-30 03:41:01 27 4
gpt4 key购买 nike

如何在不使用 tmpnam() 的情况下通过调用 tmpfile() 在 Windows 上获取文件名?

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com