引言
在 Linux 系统编程中,socket() 函数是网络通信的核心工具之一。然而,许多开发者在处理其返回值时存在误区,尤其是对文件描述符(File Descriptor, fd)的合法性判断。本文将从文件描述符的分配机制出发,结合 socket() 的返回值特性,剖析常见的错误模式,并给出最佳实践。
一、文件描述符的分配机制
在 Linux 系统中,文件描述符是进程访问资源(如文件、管道、套接字等)的抽象句柄。其分配遵循以下规则:
-
最小可用原则:内核总是分配当前未被占用的最小非负整数。
-
默认占用:程序启动时默认打开三个文件描述符:
-
0:标准输入(stdin) -
1:标准输出(stdout) -
2:标准错误(stderr)
-
因此,首次调用 socket() 通常会返回 3(假设未关闭标准流)。若程序关闭了 stdin

订阅专栏 解锁全文
2118

被折叠的 条评论
为什么被折叠?



