C++官网参考链接:https://cplusplus.com/reference/cstdio/tmpnam/
函数
<cstdio>
tmpnam
char * tmpnam ( char * str );
生成临时文件名
返回一个字符串,该字符串包含的文件名不同于任何现有文件的名称,因此适合安全地创建临时文件,而不会有覆盖现有文件的风险。
如果str是空指针,则结果字符串存储在一个内部静态数组中,可以通过返回值访问该数组。此字符串的内容至少会保留到后续调用此同一函数,这可能会覆盖它。
如果str不是空指针,它应该指向一个至少由L_tmpnam个字符组成的数组,该数组将被建议的临时文件名填充。
此函数返回的文件名可用于使用fopen创建一个普通文件,作为临时文件使用。与使用tmpfile创建的文件不同,通过这种方式创建的文件在关闭时不会自动删除;程序关闭后应该调用remove删除该文件。
形参
str
指向字符数组的指针,建议的临时名称将以C字符串的形式存储在其中。该数组的建议大小至少为L_tmpnam个字符。
或者,可以指定空指针,以使用内部静态数组存储建议的临时名称,该名称的指针由函数返回。
返回值
成功时,返回指向包含临时文件建议名称的C字符串的指针:
如果str是空指针,则指向一个内部缓冲区(其内容至少在下一次调用此函数之前被保留)。
如果str不是空指针,则返回str。
如果函数无法创建合适的文件名,则返回空指针。
用例
/* tmpnam example */
#include <stdio.h>
int main ()
{
char buffer [L_tmpnam];
char * pointer;
tmpnam (buffer);
printf ("Tempname #1: %s\n",buffer);
pointer = tmpnam (NULL);
printf ("Tempname #2: %s\n",pointer);
return 0;
}
这个程序将为临时文件生成两个不同的名称。每一个都是由可以使用tmpnam的两种方法之一创建的。
可能的输出: