【发布时间】:2019-04-05 16:12:24
【问题描述】:
我正在为一个库编写测试,该库需要创建一个目录来测试它应该提供的一些功能。我做了一些研究,发现有一个库函数:
#include <stdio.h>
char *tmpnam(char *s);
并且可以使用NULL 将其调用为唯一路径。问题是链接器警告我如下:
warning: the use of `tmpnam' is dangerous, better use `mkstemp'
也按照this answer 中的建议使用该功能。但是一开始的这种硬编码/tmp 看起来很奇怪。还要检查环境变量TMP、TMPDIR等看起来很复杂。
也许有一些 POSIX 函数可以为我检查这些变量?除了共享静态缓冲区和竞争条件之外,使用tmpnam 是否还有其他陷阱?
【问题讨论】:
标签: c linux posix temporary-directory