我很想知道文件描述符的有效值。
请让我解释一下。我知道,例如,当我#include <unistd.h>
在我的 linux 系统上使用时,会调用打开文件进行读取:
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之外的任何值?