Tôi quan tâm để biết các giá trị hợp lệ mà tôi có thể mong đợi cho một bộ mô tả tập tin.Giá trị có thể có cho các bộ mô tả tệp là gì?
Vui lòng để tôi giải thích một chút. Tôi biết rằng, ví dụ, khi tôi sử dụng #include <unistd.h>
trên hệ thống Linux của tôi sau đó một cuộc gọi để mở một tập tin để đọc:
int fileDescriptor;
fileDescriptor = open("/some/filename",O_RDONLY);
một lỗi có thể xảy ra và tôi nhận -1 như một kết quả.
Chắc chắn (-1) số âm phải có phần nào có ý nghĩa đặc biệt. Có phải tất cả các giá trị khác đều là các bộ mô tả tệp hợp lệ không? tức là những người tiêu cực như -2 và -1023?
Giả sử rằng int là 4 byte (sizeof(int)==4
), sau đó sẽ
(-1) = 10000000 0000000 00000000 00000001
sẽ chỉ mô tả tập tin không hợp lệ được phát hiện? Would người khác thích:
(0) = 00000000 0000000 00000000 00000000
(-2) = 10000000 0000000 00000000 00000010
(2) = 00000000 0000000 00000000 00000010
được ok? Vì bộ mô tả tệp có thể lưu trữ 4 byte, do đó, tôi có thể có tối đa (2^(8 * 4) -1) mô tả tệp hợp lệ và do đó đây có thể là số tệp tối đa mà tôi có thể mở, đúng không?
Nói một cách đơn giản nữa:
tôi nên mong đợi gì một (hợp lệ) mô tả tập tin được?
bất kỳ giá trị nào trừ -1?
'bộ mô tả tệp, một số nguyên ** không âm nhỏ ** để sử dụng trong các cuộc gọi hệ thống tiếp theo' xem man 2 open –
Xem [câu hỏi này] (https://stackoverflow.com/questions/17931583/maximum-number- of-files-that-can-be-open-by-c-fopen-in-linux) cho số lượng tệp/tệp mô tả tối đa có thể mở được. – jotik