C là một ngơn ngữ lập trình có cấu trúc, tuy vậy nó vẫn chứa một số câu lệnh làm phá vớ cấu trúc của chương trình:
Bảng 12.1: Các hàm cơ bản về tập tin
Các hàm trên chứa trong tập tin header stdio.h. Tập tin header này phải được bao gồm vào chương trình có sử dụng các hàm này. Hầu hết các hàm này tương tự như các hàm nhập/xuất từ thiết bị nhập xuất chuẩn. Tập tin header stdio.h còn định nghĩa một số macro sử dụng trong quá
trình xử lý tập tin. Ví dụ như, macro EOF được định nghĩa là -1, chứa giá trị trả về khi một hàm cố đọc tiếp khi đã đến cuối tập tin.
12.2.2 Con trỏ tập tin
Một con trỏ tập tin (file pointer) rất cần thiết cho việc đọc và ghi các tập tin. Nó là một con trỏ đến một structure chứa thông tin về tập tin. Thông tin bao gồm: tên tập tin, vị trí hiện tại của tập tin, tập tin đang được đọc hay ghi, có bất kỳ lỗi nào xuất hiện hay đã đến cuối tập tin. Người dùng khơng cần thiết phải biết chi tiết, vì các định nghĩa lấy từ studio.h có bao gồm một khai báo structure tên là FILE. Câu lệnh khai báo duy nhất cần thiết cho một con trỏ tập tin là:
FILE *fp;
Khai báo này cho biết fp là một con trỏ trỏ đến một FILE.
12.3 Các tập tin văn bản
Có nhiều hàm khác nhau để quản lý tập tin văn bản. Chúng ta sẽ thảo luận trong các đoạn bên dưới:
12.3.1 Mở một tập tin văn bản
Hàm fopen() mở một stream để sử dụng và liên kết một tập tin với stream đó. Con trỏ kết hợp với tập tin được trả về từ hàm fopen(). Trong hầu hết các trường hợp, tập tin đang mở là một tập tin trên đĩa. Nguyên mẫu của hàm fopen() là:
FILE *fopen(const char *filename, const char *mode);
trong đó filename là một con trỏ trỏ đến chuỗi ký tự chứa một tên tập tin hợp lệ và cũng có thể chứa cả phần mơ tả đường dẫn. Chuỗi được trỏ đến bởi con trỏ mode xác định cách thức tập tin được mở. Bảng 21.2 liệt kê các chế độ hợp lệ mà một tập tin có thể mở.