如何在 Linux 中找到“临时”目录?我正在编写一个平台中立的 C++ 函数,它返回临时目录。在 Mac 和 Windows 中,有一个 API 可以返回这些结果。在 Linux 中,我很困惑。
Charles
问问题
73620 次
5 回答
19
编辑:评论者的公平点。tmpnam
这些天不是一个好的选择;使用mktemp
/mkstemp
代替。
历史答案:符合 POSIX,并使用 tmpnam (它将在临时位置为您提供完整的文件名)。
于 2008-08-27T20:00:04.373 回答
12
使用 $TMPDIR 环境变量的值,如果不存在,使用/tmp
.
于 2008-08-27T19:59:13.847 回答
11
接受的序列,特别是从 GNU 的角度来看,是:
- 仅当程序未以SUID/SGID ( issetugid() == 0 )运行时检查环境变量TMPDIR ( getenv("TMPDIR") )
- 否则,如果P_tmpdir已定义且有效,则使用它
- 最后,如果这些失败,请使用path.h 中提供的 _PATH_TMP
如果您要添加扩展或模块,请检查核心是否为此提供了功能。例如,PHP 从 main/php_open_temporary_file.h 导出 php_get_temporary_directory()。
于 2013-08-29T01:38:22.887 回答
1
在标准 c 中,您可以尝试:P_tmpdir
于 2008-08-27T19:59:08.667 回答