我有興趣知道我可以預期的文件描述符的有效值。文件描述符的可能值是什麼?
請讓我解釋一下。我知道,比如,當我在我的Linux系統上使用#include <unistd.h>
然後調用打開一個文件進行讀操作:可能出現
int fileDescriptor;
fileDescriptor = open("/some/filename",O_RDONLY);
一個錯誤,我收到-1結果。
意外(-1)負一個必須有一些特殊的含義。是否所有其他值都是有效的文件描述符?即也是像-2和-1023那樣的負數?
假設int是4個字節(sizeof(int)==4
),然後將
(-1) = 10000000 0000000 00000000 00000001
將是唯一可檢測的無效文件描述符? 會喜歡其他人:
(0) = 00000000 0000000 00000000 00000000
(-2) = 10000000 0000000 00000000 00000010
(2) = 00000000 0000000 00000000 00000010
行嗎? 由於文件描述符可以存儲4個字節,因此我可以有最多 (2 ^(8 * 4)-1)有效的文件描述符,因此這將是我可以打開的最大文件數,是否正確?
爲純把它再次:
我應該期待一個(有效的)文件描述符是什麼?
任何值,但-1?
'文件描述符,一個小的**非負整數**用於後續系統調用'看man 2打開 –
請參見[this question](https://stackoverflow.com/questions/17931583/maximum-number- of-files-that-can-be-by-c-fopen-in-linux)可以打開的文件/文件描述符的最大數目。 – jotik