C中的文件描述符分配

4 c file-descriptor

在C中创建套接字或打开/创建文件时,分配给套接字/文件的文件描述符是否保证是可用的最低值描述符?如果有的话,C规范在这方面对文件描述符分配有何看法?

Ada*_*vis 5

它不能保证是最低的,并且取决于实现(1).但是,通常,分配打开文件描述符的例程使用的方法是第一次打开.它可能是在几个较低的自由之后立即释放,留下比你想象的更高的描述符.

但是,我能想到的唯一原因就是select函数,如果你传递了你需要检查的最高文件描述符,它就会加速.

(1)请注意,遵循IEEE标准的那些实现确保文件的最低未使用描述符,但这可能不适用于套接字.并非每个实现都遵循open()的IEEE标准,因此如果您正在编写可移植软件,最好不要依赖它.

  • 调用open()可以保证返回最低的可用文件描述符:http://www.opengroup.org/onlinepubs/009695399/functions/open.html对于套接字似乎没有这样的保证. (5认同)
  • 所引用的"IEEE标准"是POSIX.值得一提的是...... (4认同)