Việc lưu trữ dữ liệu lâu dài là cần thiết do việc quản lý, điều khiển một lượng dữ liệu lớn bằng các chương trình là khó khăn. Hơn nữa, sau khi thực thi chương trình xong, tất cả dữ liệu được nhập sẽ bị mất do dữ liệu lưu trữ thông qua các biến có tính chất tạm thời. Ngôn ngữ C cung cấp khái niệm tập tin để giải quyết vấn đề này.
9.1.1 Tập tin
Một tập tin là một chuỗi các byte dữ liệu có liên quan với nhau được lưu trữ trên đĩa. Tập tin được tạo để lưu trữ dữ liệu bền vững. Ngôn ngữ C cho phép truy xuất để điều khiển các tập tin trên thiết bị lưu trữ thông qua các hàm chức năng ở mức cao và các lời gọi ở mức thấp (mức hệ điều hành).
9.1.2 Phân loại tập tin
Phụ thuộc vào tiêu chí phân loại, có thể có các loại tập tin sau đây: Phân loại theo cách truy cập:
Tập tin truy cập tuần tự: Trong kiểu tập tin này, dữ liệu được lưu trữ một cách tuần tự; do đó, để đọc được một phần tử bất kì trong tập tin thì phải đọc qua tất cả các phần tử trước nó.
160
Tập tin truy cập ngẫu nhiên: Đối với loại tập tin này, dữ liệu có thể đọc và chỉnh sửa một cách ngẫu nhiên. Ta có thể đọc trực tiếp một phần tử bất kì một cách nhanh chóng, không tốn nhiều thời gian như tập tin tuần tự.
Phân loại theo bản chất dữ liệu
Tập tin văn bản (phần mở rộng .txt):
Với loại tập tin này, con người có thể đọc được vì mọi thứ được lưu trữ dưới dạng văn bản.
Dữ liệu được lưu thành các dòng, mỗi dòng được kết thúc bằng ký tự xuống dòng là CR (Carriage Return – về đầu dòng, mã 10) và LF (Line Feed – xuống dòng, mã 13). Tập tin văn bản kết thúc bằng ký tự EOF (End Of File) có mã 26 (Ctrl + Z)
Tập tin nhị phân (phần mở rộng .com, .exe):
Với loại tập tin này, con người không thể đọc được vì mọi thứ được viết dưới dạng các ký tự nhị phân 0 và 1.
9.1.3 Biến tập tin và con trỏ tập tin
Biến tập tin
Biến thuộc kiểu tập tin dùng đại diện cho một tập tin.
Dữ liệu chứa trong tập tin được truy xuất thông qua thao tác với biến tập tin.
Con trỏ tập tin
Dùng để xác định vị trí của phần tử hiện tại để đọc hoặc ghi trên tập tin.
Khi tập tin được mở để đọc hoặc ghi, con trỏ tập tin luôn ở vị trí đầu tập tin.
Mỗi khi đọc hoặc ghi trên tập tin, con trỏ tập tin tự động tăng lên một khoảng theo đúng số byte vừa đọc hoặc ghi trên tập tin.