我正在寻找一种跨平台的方式来指定一个临时文件。例如,在 linux 中将位于 /tmp
目录中,在 Windows 中类似于 C:\Users\Username\AppData\Local\Temp
。
是否存在针对此问题的跨平台(Boost?)解决方案?
编辑:
我需要这个文件存在,直到程序终止。 tmpfile()
不保证。引用 ccpreference :
创建的临时文件会 在流关闭(fclose) 或程序正常终止时自动删除。
原文由 orlp 发布,翻译遵循 CC BY-SA 4.0 许可协议
Boost Filesystem 库,来自该库的版本 3,可用于创建 临时文件名。它还提供了一个清晰的解决方案。实际上,以下 C++ 代码应该是平台无关的:
文件系统路径对象
temp
可用于打开文件或创建子目录,而字符串对象tempstr
提供与字符串相同的信息。