c - C 中的文件描述符分配

标签 c file-descriptor

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

最佳答案

它不能保证是最低的,并且取决于实现(1)。但是,一般来说,分配打开文件描述符的例程使用一种方法,让您首先打开。可能是在几个较低的免费后立即,给您留下比您预期的更高的描述符。

不过,我能想到知道这一点的唯一原因是选择函数,如果您将需要检查的最高文件描述符传递给它,该函数会加速。

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

关于c - C 中的文件描述符分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51627/

相关文章:

c - Valgrind 发现内存泄漏,但我无法理解

git - 无法克隆 Git 存储库 : Invalid file descriptor

c - 在 C 中构建窗口窗体

c++ - 指向未指定大小的数组的指针 "(*p)[]"在 C++ 中是非法的,但在 C 中是合法的

Bash - 将所有输出发送到日志文件,但显示错误

stdout 的 Linux proc/pid/fd 是 11?

python - 让epoll返回一次fd,无需写入

hadoop - 几分钟后使用Flume file_roll接收器类型卡住了

c - "Trace/breakpoint trap (core dumped)"在汇编中除以负值时出错

C : how can I change from file descriptor to FILE struct and vice versa?