如何使用tmpfile()获取临时文件名

时间:2016-03-09 11:05:56

标签: c++ c

tmpfile()函数说:

  

当流关闭(fclose)或程序正常终止时,将自动删除创建的临时文件。如果程序异常终止,文件是否被删除取决于特定的系统和库实现。"

tmpfile()函数返回指向创建的临时文件的流指针,而不是文件路径。 我需要临时文件名路径,因为它需要传递其他库函数。

我的应用程序可以异常退出,因此tmpfile()函数可以在异常退出时工作。

如何在退出

时自动删除临时文件路径和文件

1 个答案:

答案 0 :(得分:0)

您可以使用tmpname()。

,而不是使用tmpfile()

它将返回一个可用于创建临时文件的文件名。

请参阅以下示例(摘自http://www.cplusplus.com/reference/cstdio/tmpnam/):

#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;  
}

然后,您可以使用此文件名创建文件并在退出时将其删除。

修改

  • tmpnam返回的名称未指定任何路径。 fopen使用的默认路径将是您当前的工作目录。

  • 您可以删除该文件。它不会自动完成。您可以致电remove