软件开发过程中,生成临时文件是很常见的用法。临时文件特性是短暂存在,但又受程序控制,要确保每个文件都被指定独一无二的文件名。
cstdio库函数中声明的tmpnam()标准函数可实现该功能。
char*tmpnam(char*pszname);
L_tmpnam是在stdio.h中定义的宏,指明了tmpnam()函数产生的文件名的最大长度。
tmpname()函数创建了一个临时文件名,并将它放到pszname指向的C风格字符串中,常量L_tmpnam限制了文件名包含的字符数,常量TMP_MAX限制了确保当前目录中不生成重复文件夹的情况下,tmpnam()可被调用的最多次数,两者均可自定义。
【参数pszname】tmpnam()函数产生的文件名保存在一个数组中,并将数组的地址返回。如果pszname为null,那么文件名将被保存在一个系统自动创建的静态数组中。该数组会一直存在,直到再次调用tmpnam()函数或程序停止。如果pszname不是null,那么它必须指向一个长度不小于 L_tmpnam 的字符数组,该数组将用于保存产生的文件名。
【返回值】成功时返回一个指向保存着文件名的字符数组的指针(