#C 语言标准库函数 tmpfile
/*********************************************
* @brief 打开文件
* @return 文件流的指针
********************************************/
FILE* tmpfile(void);
说明
创建并打开一个临时文件,文件访问模式 为 "wb+"
。
返回的文件指针需要使用 fclose 函数进行关闭。
程序 正常退出 时,此函数创建的文件将被自动删除;程序异常退出时,是否删除由具体实现决定。
在某些实现中(例如较旧的 Linux),该临时文件可能不可见,也无法用其它进程打开该文件。
因为此函数实际上会创建、打开并立即从文件系统中删除文件;一旦文件描述符关闭,该文件占用的空间将被文件系统回收。
参数
无
返回值
- 打开的文件流指针
- 失败时返回
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
#推荐阅读
- C 语言标准库函数 tmpnam
- C 语言标准库函数 fopen
- C 语言标准库函数 fclose
- C 语言标准库函数 fflush
- C 语言标准库函数 freopen
- tmpfile - cppreference
- tmpfile - POSIX
- mkstemp - POSIX
#参考标准
- 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