Pre*_*eti 41
更新:感谢@RoiDanton,最新答案是std::filesystem::temp_directory_path
(C++ 17)
尝试boost::filesystem
的temp_directory_path()
内部使用:
ISO/IEC 9945(POSIX) :通过在列表中找到的第一个环境变量提供的路径TMPDIR
,TMP
,TEMP
,TEMPDIR
.如果找不到这些,"/tmp"
.
Windows:Windows GetTempPath
API函数报告的路径.
有趣的是,窗口的GetTempPath
使用类似的逻辑的POSIX版本:在列表中的第一个环境变量TMP
,TEMP
,USERPROFILE
.如果找不到这些,则返回Windows目录.
这些方法主要依赖于环境变量的事实看起来有点糟糕.但那就好像是如何确定的.看到它真的是多么平凡,你可以轻松地使用自己cstdlib
的getenv
功能,特别是如果你想要特定的订单优先级/要求或者不想使用其他库.
$TMPDIR
根据POSIX,使用环境变量.
char const *folder = getenv("TMPDIR");
if (folder == 0)
folder = "/tmp";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23597 次 |
最近记录: |