Hàm tmpfile() tạo một tệp tin tạm thời ở chế độ cập nhật nhị phân (binary update mode) trong C. Nó được khai báo trong header file của chương trình C. Hàm luôn trả về con trỏ null nếu không thể tạo tệp tin tạm thời. Tệp tin tạm thời bị xóa tự động ngay sau khi chương trình kết thúc.
Cú pháp
FILE *tmpfile(void)
Giá trị trả về
Nếu tạo tệp thành công, hàm trả về con trỏ stream tới tệp tạm thời đã tạo. Nếu không thể tạo tệp, trả về con trỏ NULL.
Thuật toán
Bắt đầu.
Khai báo mảng ký tự c[] và chuỗi dữ liệu.
Khởi tạo biến integer i = 0.
Khai báo con trỏ newfile kiểu FILE.
Gọi tmpfile() để làm newfile thành con trỏ tệp tạm thời.
Gọi open() để mở "nfile.txt" thực hiện ghi dùng newfile.
if (newfile == NULL) thì
In "Lỗi tạo tệp tin tạm thời".
return 0.
In "Tạo tệp tin tạm thời thành công".
while (c[i] != '\0') do
Ghi dữ liệu c[] vào con trỏ tệp newfile.
i++.
Gọi fclose() đóng con trỏ tệp.
Gọi open() mở "nfile.txt" đọc dùng newfile.
Gọi rewind() đặt con trỏ về đầu stream.
while (!feof(newfile)) do
Gọi putchar() in dữ liệu con trỏ newfile.
Gọi fclose() đóng con trỏ tệp.
Kết thúc.
Ví dụ
#include <stdio.h>
int main() {
char c[] = "Tutorials Point";
int i = 0;
FILE* newfile = tmpfile(); // làm con trỏ tệp thành tệp tạm thời.
newfile = fopen("nfile.txt", "w");
if (newfile == NULL) {
puts("Lỗi tạo tệp tin tạm thời");
return 0;
}
puts("Tạo tệp tin tạm thời thành công");
while (c[i] != '\0') {
fputc(c[i], newfile);
i++;
}
fclose(newfile);
newfile = fopen("nfile.txt", "r");
rewind(newfile); // đặt con trỏ về đầu stream
while (!feof(newfile))
putchar(fgetc(newfile));
fclose(newfile); // đóng con trỏ tệp
}
Kết quả
Tạo tệp tin tạm thời thành công Tutorials Point