/*********************************************
* @brief 打开文件
* @return 文件流的指针
********************************************/
FILE* tmpfile(void);
!subtitle:说明
创建并打开一个临时文件,文件访问模式 为 "wb+"。
返回的文件指针需要使用 fclose 函数进行关闭。
程序 正常退出 时,此函数创建的文件将被自动删除;程序异常退出时,是否删除由具体实现决定。
在某些实现中(例如较旧的 Linux),该临时文件可能不可见,也无法用其它进程打开该文件。
因为此函数实际上会创建、打开并立即从文件系统中删除文件;一旦文件描述符关闭,该文件占用的空间将被文件系统回收。
!subtitle:参数
无
!subtitle:返回值
打开的文件流指针
失败时返回 NULL
#include <stdio.h>
int main(void)
{
// 打开文件
FILE* fp = tmpfile();
if (fp == NULL)
{
perror("文件打开失败");
return 1;
}
// 写文件
fputs("Hello World\n", fp);
// 重置文件位置指示器到文件开头
fseek(fp, 0, SEEK_SET);
// 读取文件并打印
int ch;
while ((ch = fgetc(fp)) != EOF)
{
putchar(ch);
}
// 关闭文件
fclose(fp);
return 0;
}
运行结果:
Hello World
C23 standard (ISO/IEC 9899:2024):
7.21.4.3 The tmpfile function (p: TBD)
C17 standard (ISO/IEC 9899:2018):
7.21.4.3 The tmpfile function (p: 222)
C11 standard (ISO/IEC 9899:2011):
7.21.4.3 The tmpfile function (p: 303)
C99 standard (ISO/IEC 9899:1999):
7.19.4.3 The tmpfile function (p: 269)
C89/C90 standard (ISO/IEC 9899:1990):
4.9.4.3 The tmpfile function