如何在Linux中找到"temp"目录?

Cha*_*s K 35 linux

如何在Linux中找到"temp"目录?我正在编写一个平台中立的C++函数,它返回临时目录.在Mac和Windows中,有一个返回这些结果的API.在Linux中,我很难过.

Gre*_*Dan 29

检查以下变量:

如果全部失败,请尝试使用该目录/tmp.

您还可以使用tempnam函数生成唯一的临时文件名.


Ada*_*ght 20

编辑:来自评论者的公平点.tmpnam这些天不是一个好选择; 使用mktemp/ mkstemp代替.

历史答案:符合POSIX标准,并使用tmpnam(它会在临时位置为您提供完整的文件名).

  • 我对tmpnam的linux手册页在其BUGS部分中说:"永远不要使用此函数.使用mkstemp或tmpfile" (5认同)

Gre*_*ill 11

使用$ TMPDIR环境变量的值,如果不存在,请使用/tmp.


Bor*_*boy 9

接受的序列,特别是从GNU的角度来看,是:

  1. 仅当程序未以SUID/SGID(issetugid()== 0)运行时检查环境变量TMPDIR(getenv("TMPDIR"))
  2. 否则使用P_tmpdir(如果已定义且有效)
  3. 最后,如果失败,请使用paths.h中提供的_PATH_TMP

如果要添加扩展或模块,请检查核心是否为此提供功能.例如,PHP从main/php_open_temporary_file.h导出php_get_temporary_directory().


jm.*_*jm. 1

在标准c中,你可以尝试: P_tmpdir