GIÁO TRÌNH HỆ ĐIỀU HÀNH UNIX - LINUX - Trang 152

1
5

open() trả về một mô tả file nếu không có lỗi xảy ra. Khi có lỗi , nó trả về giá trị -1 và

đặt giá trị cho biến errno. Hàm create() cũng tương tự như open() với các cờ O_CREATE |
O_WRONLY | O_TRUNC

Hàm close()

Chúng ta nên đóng mô tả file khi đã thao tác xong với nó. Chỉ có một đối số đó là số

mô tả file mà lời gọi open() trả về. Dạng của lời gọi close() là:

#include <unistd.h>
int close(int fd);

Tất cả các khoá (lock) do tiến trình xử lý trên file được giải phóng, cho dù chúng được

đặt mô tả file khác. Nếu quá trình đóng file làm cho bộ đếm liên kết bằng 0 thì file sẽ bị
xoá. Nếu đây là mô tả file cuối cùng liên kết đến một file được mở thì bản ghi ở bảng file
mở được giải phóng. Nếu không phải là một file bình thường thì các hiệu ứng không mong
muốn có thể xảy ra.


Hàm read()

Lời gọi hệ thống read() sử dụng để đọc dữ liệu từ file tương ứng với một mô tả file.

#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);

Đối số đầu tiên là mô tả file mà được trả về từ lời gọi open() trước đó. Đối số thứ hai là

một con trỏ tới bộ đệm để sao chép dữ liệu và đối số thứ ba là số byte sẽ được đọc. read()
trả về số byte được đọc hoặc -1 nếu có lỗi xảy ra.

Hàm write()

Lời gọi hệ thống write() sử dụng để ghi dữ liệu vào file tương ứng với một mô tả file.

#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);

Đối số đầu tiên là số mô tả file được trả về từ lời gọi open() trước đó. Đối số thứ hai là

con trỏ tới bộ đệm (để sao chép dữ liệu, có dung lượng đủ lớn để chứa dữ liệu) và đối số
thứ ba xác định số byte sẽ được ghi. write() trả về số byte đọc hoặc -1 nếu có lỗi xảy ra

Hàm ftruncate()

Lời gọi hệ thống ftruncate() cắt file tham chiếu bởi mô tả file fd với độ dài được xác

định bởi tham số length

#include <unistd.h>
int ftruncate(int fd, size_t length);

Trả về giá trị 0 nếu thành công và -1 nếu có lỗi xảy ra.

Hàm lseek()

Hàm lseek() đặt vị trí đọc và ghi hiện tại trong file được tham chiếu bởi mô tả file files

tới vị trí offset