Đóng tệp: Khi hoàn tất với một tệp, tệp phải được đóng bằng hàm fclose().
fclose(ifp);
fclose(ofp);
Đóng tệp là rất quan trọng, đặc biệt là với tệp đầu ra. Lý do là đầu ra thường được đệm. Điều này có nghĩa rằng khi bạn nói với C để viết một cái gì đó, ví dụ,
fprintf(ofp, "Whatever!\n");
nó không cần thiết được ghi vào đĩa ngay lập tức, nhưng có thể kết thúc trong một đệm trong bộ nhớ. đệm đầu ra này sẽ giữ văn bản tạm thời:
mẫu đệm đầu ra:
----------------------------------------------
| a | b | c | W | h | a | t | e | v | e | r |
----------------------------------------------
| ! | \n | | | | | | | | | |
----------------------------------------------
| | | | | | | | | | | |
----------------------------------------------
| | | | | | | | | | | |
----------------------------------------------
...
(Bộ đệm là thực sự chỉ là 1 chiều mặc dù bản vẽ này.)
Khi bộ đệm đầy lên (hoặc khi tệp được đóng), dữ liệu cuối cùng được ghi vào đĩa.
Reference: http://www.cs.bu.edu/teaching/c/file-io/intro/
Một loạt các câu trả lời dưới đây cho biết rằng() xóa bộ đệm vào đĩa. Tuy nhiên, close() là một hàm POSIX và không có điều nào đúng với POSIX close(). Nó chỉ phát hành khóa và giải phóng tài nguyên. –