tmpnam
函数 <cstdio>
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的两个方法之一创建的。
可能输出:
Tempname #1: /s4s4.
Tempname #2: /s4s4.1
🍄 另请参阅