2228

11 分钟

#C 语言标准库函数 tmpnam

/********************************************* * @brief 生成一个临时文件名 * @param[out] filename 用于保存文件名的内存空间 * @return 文件名 ********************************************/ char* tmpnam(char* filename);

说明

生成一个临时文件名。

最多可以生成 TMP_MAX 个唯一的文件名,但是其中一些或全部可能已经被使用。

生成的文件名将保存在参数 filename 指向的内存空间中(该内存空间长度不应少于 L_tmpnam 字节),并返回 filename 本身。

如果参数 filenameNULL,则在内部静态缓冲区保存文件名,并返回该缓冲区的地址。

参数

  • 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 字节,返回参数本身。

#推荐阅读

#参考标准

  • 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

创建于 2025/8/13

更新于 2025/8/13