我希望了解文件描述符可以期望的有效值。
请允许我解释一下。我知道,在我的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之外任何值都行吗?