
- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
C 库 - tmpfile() 函数
C 库的 FILE *tmpfile(void) 函数以二进制更新模式 (wb+) 创建一个临时文件。创建的临时文件会在流关闭 (fclose) 或程序终止时自动删除。
语法
以下是 C 库 tmpfile() 函数的语法:
FILE *tmpfile(void);
参数
-
此函数不接受任何参数。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
返回值
成功时,返回一个指向新创建的临时文件的 FILE* 指针。失败时,如果无法创建文件,则返回 NULL。这可能是由于文件描述符不足、权限不足或临时空间不足等原因导致的。
示例 1:创建和写入临时文件
此程序创建一个临时文件,向其中写入一行文本,然后读取并打印文件内容到标准输出。
以下是 C 库 tmpfile() 函数的示例。
#include <stdio.h> int main() { FILE *temp = tmpfile(); if (temp == NULL) { perror("Failed to create temporary file"); return 1; } fprintf(temp, "This is a temporary file.\n"); rewind(temp); char buffer[100]; while (fgets(buffer, sizeof(buffer), temp) != NULL) { fputs(buffer, stdout); } fclose(temp); return 0; }
输出
以上代码产生以下结果:
This is a temporary file.
示例 2:将临时文件用于中间计算
此程序计算从 0 到 10 的数字的平方根,将结果写入临时文件,然后读取并打印结果。
#include <stdio.h> #include <math.h> int main() { FILE *temp = tmpfile(); if (temp == NULL) { perror("Failed to create temporary file"); return 1; } for (int i = 0; i <= 10; i++) { double value = sqrt(i); fprintf(temp, "%d %.2f\n", i, value); } rewind(temp); int num; double sqrt_value; while (fscanf(temp, "%d %lf", &num, &sqrt_value) != EOF) { printf("sqrt(%d) = %.2f\n", num, sqrt_value); } fclose(temp); return 0; }
输出
执行以上代码后,我们得到以下结果:
sqrt(0) = 0.00 sqrt(1) = 1.00 sqrt(2) = 1.41 sqrt(3) = 1.73 sqrt(4) = 2.00 sqrt(5) = 2.24 sqrt(6) = 2.45 sqrt(7) = 2.65 sqrt(8) = 2.83 sqrt(9) = 3.00 sqrt(10) = 3.16
广告