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