#C 语言标准库函数 tmpnam
/*********************************************
* @brief 生成一个临时文件名
* @param[out] filename 用于保存文件名的内存空间
* @return 文件名
********************************************/
char* tmpnam(char* filename);
说明
生成一个临时文件名。
最多可以生成 TMP_MAX
个唯一的文件名,但是其中一些或全部可能已经被使用。
生成的文件名将保存在参数 filename
指向的内存空间中(该内存空间长度不应少于 L_tmpnam
字节),并返回 filename
本身。
如果参数 filename
为 NULL
,则在内部静态缓冲区保存文件名,并返回该缓冲区的地址。
参数
filename
- 指向用于保存文件名的内存空间
返回值
- 成功时返回文件名
- 失败时返回
NULL
#示例
#include <stdio.h>
int main(void)
{
// 参数为 NULL,返回内部静态缓冲区保存的文件名
printf("%s\n", tmpnam(NULL));
char filename[L_tmpnam]; // 保存文件名,长度为 L_tmpnam
tmpnam(filename);
printf("%s\n", filename);
return 0;
}
运行结果:
/tmp/filemVkQ4I /tmp/filey54nm0
说明:
参数为 NULL
时,文件名保存在内部的静态缓冲区内,返回该缓冲区的地址。
参数不为 NULL
时,文件名保存到参数指向的内存空间,该空间的长度应为 L_tmpnam
字节,返回参数本身。
#推荐阅读
- C 语言标准库函数 tmpfile
- C 语言标准库函数 fopen
- C 语言标准库函数 fclose
- C 语言标准库函数 fflush
- C 语言标准库函数 freopen
- tmpnam - cppreference
- tmpnam - POSIX
- mkstemp - POSIX
#参考标准
- C23 standard (ISO/IEC 9899:2024):
- 7.21.4.4 The tmpnam function (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.21.4.4 The tmpnam function (p: 222)
- C11 standard (ISO/IEC 9899:2011):
- 7.21.4.4 The tmpnam function (p: 303-304)
- C99 standard (ISO/IEC 9899:1999):
- 7.19.4.4 The tmpnam function (p: 269-270)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.9.4.4 The tmpnam function