char *tempnam(char *dir, char *pfx);
char *_tmpnam_r(void *reent, char *s);
char *_tempnam_r(void *reent, char *dir, char *pfx);
使用这两个函数中的任意一个来生成临时文件的名称。生成的名称保证不会与其他文件发生冲突(对于任一函数的最多 TMP_MAX 次调用)。
tmpnam 生成的文件名以 P_tmpdir 的值(定义在 `stdio.h' 中)作为路径的前导目录组件。
您可以使用 tmpnam 的参数 s 为生成的文件名指定一块合适的内存区域;否则,您可以调用 tmpnam(NULL) 来使用内部静态缓冲区。
tempnam 允许您对生成的文件名进行更多控制:您可以使用参数 dir 指定临时文件目录的路径,并且可以使用参数 pfx 指定基本文件名的前缀。
如果 dir 为 NULL,tempnam 将尝试改用环境变量 TMPDIR 的值;如果没有该值,tempnam 将使用 P_tmpdir 的值(定义在 `stdio.h' 中)。
如果您不需要为临时文件的基本名称指定任何特定前缀,可以向 tempnam 的 pfx 参数传递 NULL。
_tmpnam_r 和 _tempnam_r 分别是 tmpnam 和 tempnam 的可重入版本。额外的参数 reent 是一个指向可重入结构的指针。
生成的文件名适用于临时文件,但其本身并不能使文件成为临时文件。当您不再需要这些名称的文件时,仍必须显式删除它们。
如果您为 tmpnam 提供了自己的数据区域 s,则必须确保它有足够的空间容纳至少 L_tmpnam 个 char 类型的元素。### 返回值
tmpnam 和 tempnam 均返回一个指向新生成的文件名的指针。
**权威来源**: BUSMASTER DITA help source `tmpnam.dita`, compiled into `BUSMASTER.CHM` with the application.