C 库 - tmpnam() 函数



C 库函数 char *tmpnam(char *str) 生成并返回一个有效的、不存在的临时文件名。如果 str 为空,则只返回临时文件名。此函数在您需要以最大程度减少名称冲突的风险的方式创建临时文件时非常有用。

语法

以下是 C 库函数 tmpnam() 的语法:

char *tmpnam(char *str);

参数

此函数只接受一个参数:

  • str: 指向至少包含 L_tmpnam 个字符的数组的指针,生成的临时文件名将存储在此数组中。如果 str 为 NULL,则 tmpnam 返回指向内部静态缓冲区的指针,该缓冲区保存临时文件名。

返回值

成功时,函数返回一个指向包含生成的临时文件名的字符串的指针。如果 str 不为 NULL,则返回 str。如果 str 为 NULL,则返回指向内部静态缓冲区的指针。

示例 1:使用静态缓冲区的 tmpnam

此示例演示使用 NULL 的 tmpnam 来生成临时文件名并将其存储在内部静态缓冲区中。

以下是 C 库函数 tmpnam() 的示例。

#include <stdio.h>

int main() {
   char *filename;

   filename = tmpnam(NULL);
   printf("Generated temporary file name: %s\n", filename);

   return 0;
}

输出

上述代码产生以下结果:

Generated temporary file name: /tmp/fileXXXXXX

示例 2:生成多个临时文件名

此示例演示使用单独的缓冲区生成多个临时文件名,以确保每个文件名都独立存储。

#include <stdio.h>

int main() {
   char buffer1[L_tmpnam];
   char buffer2[L_tmpnam];

   tmpnam(buffer1);
   tmpnam(buffer2);

   printf("Generated temporary file name 1: %s\n", buffer1);
   printf("Generated temporary file name 2: %s\n", buffer2);

   return 0;
}

输出

执行上述代码后,我们将得到以下结果:

Generated temporary file name 1: /tmp/fileXXXXXX
Generated temporary file name 2: /tmp/fileYYYYYY
广告