如何在Linux中找到"temp"目录?我正在编写一个平台中立的C++函数,它返回临时目录.在Mac和Windows中,有一个返回这些结果的API.在Linux中,我很难过.
检查以下变量:
环境变量 TMPDIR
宏的价值P_tmpdir
如果全部失败,请尝试使用该目录/tmp
.
您还可以使用tempnam
函数生成唯一的临时文件名.
编辑:来自评论者的公平点.tmpnam
这些天不是一个好选择; 使用mktemp
/ mkstemp
代替.
历史答案:符合POSIX标准,并使用tmpnam(它会在临时位置为您提供完整的文件名).
使用$ TMPDIR环境变量的值,如果不存在,请使用/tmp
.
接受的序列,特别是从GNU的角度来看,是:
仅当程序未以SUID/SGID(issetugid()== 0)运行时检查环境变量TMPDIR(getenv("TMPDIR"))
否则使用P_tmpdir(如果已定义且有效)
最后,如果失败,请使用paths.h中提供的_PATH_TMP
如果要添加扩展或模块,请检查核心是否为此提供功能.例如,PHP从main/php_open_temporary_file.h导出php_get_temporary_directory().