当在 C 中创建套接字或打开/创建文件时,分配给套接字/文件的文件描述符是否保证是可用的最低值描述符? C 规范在这方面对文件描述符分配有何规定(如果有的话)?
最佳答案
它不能保证是最低的,并且取决于实现(1)。但是,一般来说,分配打开文件描述符的例程使用一种方法,让您首先打开。可能是在几个较低的免费后立即,给您留下比您预期的更高的描述符。
不过,我能想到知道这一点的唯一原因是选择函数,如果您将需要检查的最高文件描述符传递给它,该函数会加速。
(1) 请注意,那些遵循 IEEE 标准的实现确实保证了文件的最低未使用描述符,但这可能不适用于套接字。并非每个实现都遵循 Open() 的 IEEE 标准,因此如果您正在编写可移植软件,最好不要依赖它。
关于c - C 中的文件描述符分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51627/