Chức năng mở Posix với lập trình C

Posix Open Function With C Programming



Khái niệm xử lý tệp được sử dụng rộng rãi trong tất cả các ngôn ngữ lập trình. Đặc biệt đối với C và C ++, bạn sẽ tìm thấy một tài liệu rộng lớn về thông tin liên quan đến khái niệm xử lý tệp. Bất cứ khi nào bạn muốn truy cập hoặc sửa đổi tệp bằng C hoặc C ++, trước tiên bạn phải mở tệp đó để đọc hoặc ghi. Tác vụ mở tệp được hoàn thành với sự trợ giúp của chức năng Mở Posix.

Hàm này chứa một tập hợp các tham số được truyền cùng với hàm này để mở một tệp được chỉ định. Chúng tôi sẽ thảo luận về các tham số này trong tiêu đề tiếp theo của bài viết của chúng tôi. Tuy nhiên, mục tiêu chính của bài viết này là hướng dẫn bạn cách sử dụng hàm Posix Open trong Linux Mint 20. Trong bài viết này, hãy tìm hiểu cách hoạt động của hàm Open với lập trình C.







Các thông số của chức năng mở Posix

Hàm Posix Open chứa hai tham số được chia thành nhiều loại khác nhau. Tham số đầu tiên được gọi là Con đường , đề cập đến vị trí của tệp mà bạn muốn mở. Nếu bạn đang tạo mã C của mình để mở một tệp trong cùng thư mục chứa tệp được mở, thì bạn chỉ cần viết tên của tệp và bỏ qua đường dẫn của tệp đó. Tuy nhiên, nếu tệp cần mở nằm trong bất kỳ thư mục nào khác, thì bạn phải chỉ định đường dẫn đầy đủ của nó làm tham số cho hàm Mở, theo sau là dấu gạch chéo (/).



Tham số thứ hai của hàm Posix Open được gọi là Lá cờ , đề cập đến các tùy chọn mà bạn có thể mở tệp. Các tùy chọn này là chỉ đọc, chỉ ghi, đọc và ghi, tạo tệp và ngăn tạo tệp. Các cờ tương ứng của các hoạt động này là O_RDONLY, O_WRONLY, O_RDWR, O_CREAT,O_EXCL tương ứng. Bạn có thể sử dụng một trong các cờ này cùng một lúc hoặc bạn có thể kết hợp nhiều cờ cùng một lúc, tùy thuộc vào yêu cầu của bạn, được phân tách bằng dấu | Biểu tượng. Bạn sẽ bắt đầu hiểu các cờ này rõ ràng hơn sau khi đọc ví dụ dưới đây.



Ví dụ: Sử dụng chức năng mở Posix trong Linux Mint 20

Để cung cấp một ví dụ về việc sử dụng chức năng Posix Open với lập trình C trong Linux Mint 20, chúng tôi đã tạo một chương trình cố gắng mở một tệp. Nếu tệp đó đã tồn tại, thì chức năng này sẽ chỉ cần mở tệp đó; nếu không, hàm sẽ tạo một tệp với tên được chỉ định. Bây giờ, chúng ta sẽ xem xét tất cả các giai đoạn thực thi chương trình này, bắt đầu với việc tạo ra nó.





Bước 1: Tạo chương trình mẫu để kiểm tra chức năng mở Posix

Ở đây, chúng tôi đã tạo một tài liệu trong Thư mục chính của hệ thống Linux Mint 20 và đặt tên là OpenFunction.c. Sau khi tạo tài liệu này, chúng tôi sẽ mở nó và nhập mã hiển thị trong hình bên dưới vào tệp đó.



Trong đoạn mã hiển thị trong hình trên, chúng ta đã tạo một biến số nguyên, có tên là fd , tham chiếu đến Trình mô tả tệp. Biến này sẽ được gán giá trị trả về của hàm Open. Giá trị của biến này sẽ là 3 nếu hàm Open thực thi thành công. Nếu không, giá trị của nó sẽ là -1. Trong các tham số của hàm Open, chúng tôi đã cung cấp tên tệp, tức là NewFile.txt. Tệp này không tồn tại trong hệ thống của chúng tôi trước đây, có nghĩa là chức năng Mở của chúng tôi sẽ tạo tệp này.

Ngoài ra, chúng tôi đã chỉ định thông qua các cờ của chức năng Mở rằng nếu tệp đã tồn tại, thì tệp sẽ được mở ở chế độ chỉ đọc; trong khi nếu nó không tồn tại, thì chức năng Open sẽ chỉ tạo một tệp với tên được chỉ định. Chúng tôi cũng đã chỉ định rằng nếu giá trị của fd biến nhỏ hơn 0, thì hàm cũng sẽ in ra lỗi xảy ra khi mở tệp được chỉ định. Cuối cùng, bạn có thể lưu mã của mình bằng cách nhấn Ctrl + S .

Bước 2: Biên dịch chương trình mẫu

Sau khi viết chương trình mẫu, chúng tôi sẽ khởi chạy thiết bị đầu cuối để biên dịch nó bằng lệnh sau:

$gccOpenFunction.c –o OpenFunction

Ở đây, OpenFunction.c đề cập đến tệp chương trình mẫu mà chúng tôi muốn biên dịch, trong khi OpenFunction sau cờ -o đề cập đến tệp đối tượng sẽ được tạo sau khi biên dịch.

Nếu quá trình biên dịch chương trình mẫu của chúng tôi được thực hiện thành công, thì chúng tôi sẽ không thấy bất kỳ thông báo lỗi nào trong terminal sau khi chạy chương trình, như thể hiện trong hình ảnh bên dưới:

Bước 3: Chạy chương trình mẫu

Cuối cùng, sau khi biên dịch chương trình mẫu của chúng tôi, chúng tôi có thể chạy nó trong Linux Mint 20 bằng cách ra lệnh sau:

$./OpenFunction

Ở đây, OpenFunction đề cập đến cùng một tệp đối tượng được tạo sau khi biên dịch chương trình mẫu của chúng tôi.

Bạn có thể thấy trong đầu ra của chương trình mẫu của chúng tôi trong hình ảnh bên dưới rằng giá trị của biến File Descriptor, tức là, fd , là 3. Kết quả này có nghĩa là mã đã được thực thi thành công. Nói cách khác, một tệp có tên NewFile.txt đã được tạo thành công, vì tệp này không tồn tại trước đó trong hệ thống của chúng tôi. Nếu bạn muốn, bạn thậm chí có thể truy cập và kiểm tra nó trong Thư mục chính của bạn để xác minh xem tệp đã được tạo hay chưa.

Phần kết luận

Hôm nay hướng dẫn cho bạn cách sử dụng chức năng Posix Open với lập trình C trong Linux Mint 20. Hy vọng rằng ví dụ được cung cấp sẽ đủ để nhấn mạnh tầm quan trọng của chức năng này. Bất kể lý do mở tệp là gì, bạn vẫn phải sử dụng chức năng này để có quyền truy cập vào tệp. Nếu không có chức năng này, bạn sẽ không thể truy cập bất kỳ tệp nào. Do đó, bạn phải tìm hiểu cách sử dụng của hàm này trước khi thực hiện xử lý tệp trong C và C ++.