1166839
File descriptor
https://vi.wikipedia.org/wiki?curid=1166839
Title: File descriptor
Trong các hệ thống kiểu Unix, file descriptor có thể tham chiếu đến bất kỳ kiểu file Unix nào có mang tên trong hệ thống file. Không chỉ các file thông thường mà còn bao gồm cả thư mục, thiết bị khối và thiết bị kí tự (còn được gọi là "file đặc biệt"), Unix domain socket và named pipe. File descriptor cũng có thể tham chiếu đến những đối tượng khác mà bình thường không tồn tại trong hệ thống file, chẳng hạn như anonymous pipe và socket mạng.
Cấu trúc dữ liệu FILE trong thư viện I/O tiêu chuẩn C thường bao gồm file descriptor cấp thấp cho các loại đối tượng như trên trong các hệ thống kiểu Unix. Cấu trúc dữ liệu có tính tổng thể đấy mang lại thêm sự trừu tượng và nó được gọi với cái tên khác là "file handle".
Các thao tác trên file descriptor.
Dưới đây liệt kê các thao tác (hàm) điển hình lên file descriptor trên các hệ thống kiểu Unix hiện đại. Hầu hết các hàm này đều được khai báo trong header codice_10, nhưng một số thì lại nằm trong header codice_11.
Thao tác trên bảng file descriptor.
Hàm được dùng để làm các thao tác khác nhau trên file descriptor, tùy vào 'đối số lệnh' được truyền cho nó. Có các lệnh để truy xuất và thiết đặt những thuộc tính liên đới với file descriptor, bao gồm , , và .
Các thao tác sẽ có.
Một loạt các thao tác mới trên file descriptor đã được bổ sung vào nhiều hệ thống kiểu Unix hiện đại và cũng đã được bổ sung vào khá nhiều thư viện C, nhằm để được chuẩn hóa trong một phiên bản tương lai nào đó của POSIX. Hậu tố codice_12 trong tên của hàm biểu thị rằng hàm đấy nhận vào thêm một đối số ở vị trí thứ nhất, đối số đó cung cấp file descriptor ứng với thư mục cơ sở để từ đó phân giải đường dẫn tương đối, còn nếu dùng hàm mà tên không có hậu tố codice_12 thì tương đương với việc gọi hàm tương ứng có hậu tố codice_12 và truyền file descriptor ứng với thư mục làm việc hiện hành làm tham số thứ nhất. Mục đích của các thao tác mới này là để phòng ngừa một số loại tấn công TOCTOU nhất định.
File descriptor làm công năng.