Bài 12 Quản lý tập tin Mục tiêu:

Một phần của tài liệu ngôn ngữ lt_c (Trang 178 - 179)

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ài 12 Quản lý tập tin Mục tiêu:

Mục tiêu:

Kết thúc bài học này, bạn có thể:

 Giải thích khái niệm luồng (streams) và tập tin (files)  Thảo luận các luồng văn bản và các luồng nhị phân  Giải thích các hàm xử lý tập tin

 Giải thích con trỏ tập tin

 Thảo luận con trỏ kích hoạt hiện hành

 Giải thích các đối số từ dịng nhắc lệnh (command-line).

Giới thiệu

Hầu hết các chương trình đều yêu cầu đọc và ghi dữ liệu vào các hệ thống lưu trữ trên đĩa. Các chương trình xử lý văn bản cần lưu các tập tin văn bản, chương trình xử lý bảng tính cần lưu nội dung của các ơ, chương trình cơ sỡ dữ liệu cần lưu các mẫu tin. Bài này sẽ khám phá các tiện ích trong C dành cho các thao tác nhập/xuất (I/O) đĩa hệ thống.

Ngôn ngữ C không chứa bất kỳ câu lệnh nhập/xuất nào một cách tường minh. Tất cả các thao tác nhập/xuất đều thực hiện thông qua các hàm thư viện chuẩn của C. Tiếp cận này làm cho hệ thống quản lý tập tin của C rất mạnh và uyển chuyển. Nhập/xuất trong C là tuyệt vời vì dữ liệu có thể truyền ở dạng nhị phân hay ở dạng văn bản mà con người có thể đọc được. Điều này làm cho việc tạo tập tin để đáp ứng mọi nhu cầu một cách dễ dàng.

Việc hiểu rõ sự khác biệt giữa stream và tập tin là rất quan trọng. Hệ thống nhập/xuất của C cung cấp cho người dùng một giao diện độc lập với thiết bị thật sự đang truy cập. Giao diện này không phải là một tập tin thật sự mà là một sự biễu diễn trừu tượng của thiết bị. Giao diện trừu tượng này được gọi là một stream và thiết bị thật sự được gọi là tập tin.

12.1 File Streams

Hệ thống tập tin của C làm việc được với rất nhiều thiết bị khác nhau bao gồm máy in, ổ đĩa, ổ băng từ và các thiết bị đầu cuối. Mặc dù tất cả các thiết bị đều khác nhau, nhưng hệ thống tập tin có vùng đệm sẽ chuyển mỗi thiết bị về một thiết bị logic gọi là một stream. Vì mọi streams hoạt động tương tự, nên việc quản lý các thiết bị là rất dễ dàng. Có hai loại streams – văn bản (text) và

nhị phân (binary).

12.1.1 Streams văn bản

Một streams văn bản là một chuỗi các ký tự. Các streams văn bản có thể được tổ chức thành các dịng, mỗi dòng kết thúc bằng một ký tự sang dòng mới. Tuy nhiên, ký tự sang dòng mới là tùy chọn trong dòng cuối và được quyết định khi cài đặt. Hầu hết các trình biên dịch C khơng kết thúc stream văn bản với ký tự sang dòng mới. Trong một stream văn bản, có thể xảy ra một vài sự chuyển đổi ký tự khi môi trường yêu cầu. Chẳng hạn như, ký tự sang dịng mới có thể được chuyển thành một cặp ký tự về đầu dịng/nhảy đến dịng kế. Vì vậy, mối quan hệ giữa các ký tự được ghi (hay đọc) và những ký tự ở thiết bị ngoại vi có thể khơng phải là mối quan hệ một-một.

Và cũng vì sự chuyển đổi có thể xảy ra này, số lượng ký tự được ghi (hay đọc) có thể khơng giống như số lượng ký tự nhìn thấy ở thiết bị ngoại vi.

12.1.2 Streams nhị phân

Một streams nhị phân là một chuỗi các byte với sự tương ứng một-một với thiết bị ngoại vi, nghĩa là, khơng có sự chuyển đổi ký tự. Cũng vì vậy, số lượng byte đọc (hay ghi) cũng sẽ giống như số lượng byte ở thiết bị ngoại vi. Các stream nhị phân là các chuỗi byte thuần túy, mà khơng có bất kỳ ký hiệu nào được dùng để chỉ ra điểm kết thúc của tập tin hay kết thúc của record. Kết thúc của tập tin được xác định bằng độ lớn của tập tin.

12.2 Các hàm về tập tin và structure FILE

Một tập tin có thể tham chiếu đến bất cứ cái gì: từ một tập tin trên đĩa đến một thiết bị đầu cuối hay một máy in. Tuy nhiên, tất cả các tập tin đều khơng có cùng khả năng. Ví dụ như, một tập tin trên đĩa có thể hổ trợ truy cập ngẩu nhiên trong khi một bàn phím thì khơng. Một tập tin sẽ kết hợp với một stream bằng cách thực hiện thao tác mở. Tương tự, nó sẽ thơi kết hợp với một stream bằng thao tác đóng. Khi một chương trình kết thúc bình thường, tất cả các tập tin đều tự động đóng. Tuy nhiên, khi một chương trình bị treo hoặc kết thúc bất thường, các tập tin vẫn còn mở.

12.2.1 Các hàm cơ bản về tập tin

Một hệ thống quản lý tập tin theo chuẩn ANSI bao gồm một số hàm liên quan với nhau. Các hàm thông dụng nhất được liệt kê trong bảng 21.1.

Một phần của tài liệu ngôn ngữ lt_c (Trang 178 - 179)

Tải bản đầy đủ (DOCX)

(194 trang)
w