C语言tmpnam()函数:产生一个唯一的包含路径的文件名
头文件:#include<stdio.h>
tmpnam()函数产生一个唯一的包含路径的文件名,该文件名与系统中已经存在的文件都不相同,因此非常适合用来创建一个临时文件,而不用担心覆盖现有的文件。其原型为:
char *tmpnam(char *str);
【参数】tmpnam()函数产生的文件名保存在一个数组中,并将数组的地址返回。如果str为null,那么文件名将被保存在一个系统自动创建的静态数组中。该数组会一直存在,直到再次调用tmpnam()函数或程序停止。如果str不是null,那么它必须指向一个长度不小于 L_tmpnam 的字符数组,该数组将用于保存产生的文件名。
L_tmpnam是在stdio.h中定义的宏,指明了tmpnam()函数产生的文件名的最大长度。
【返回值】成功时返回一个指向保存着文件名的字符数组的指针(如果str不是null,那么返回值与str一样),失败时返回null。
注意:tmpnam()仅仅是产生一个文件名,必须使用fopen()等函数创建临时文件。因此在文件关闭或程序停止时,该文件不会自动删除,必须手动处理。而tmpfile()函数创建并打开一个临时文件,该文件由系统自行管理,会在文件关闭或程序停止时自动删除。
【实例】产生另个文件名并打印。
Tempname #1: /s4s4.
Tempname #2: /s4s4.1
tmpnam()函数产生一个唯一的包含路径的文件名,该文件名与系统中已经存在的文件都不相同,因此非常适合用来创建一个临时文件,而不用担心覆盖现有的文件。其原型为:
char *tmpnam(char *str);
【参数】tmpnam()函数产生的文件名保存在一个数组中,并将数组的地址返回。如果str为null,那么文件名将被保存在一个系统自动创建的静态数组中。该数组会一直存在,直到再次调用tmpnam()函数或程序停止。如果str不是null,那么它必须指向一个长度不小于 L_tmpnam 的字符数组,该数组将用于保存产生的文件名。
L_tmpnam是在stdio.h中定义的宏,指明了tmpnam()函数产生的文件名的最大长度。
【返回值】成功时返回一个指向保存着文件名的字符数组的指针(如果str不是null,那么返回值与str一样),失败时返回null。
注意:tmpnam()仅仅是产生一个文件名,必须使用fopen()等函数创建临时文件。因此在文件关闭或程序停止时,该文件不会自动删除,必须手动处理。而tmpfile()函数创建并打开一个临时文件,该文件由系统自行管理,会在文件关闭或程序停止时自动删除。
【实例】产生另个文件名并打印。
#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; }可能的运行结果:
Tempname #1: /s4s4.
Tempname #2: /s4s4.1