面试题答案
一键面试文件描述符类型差异
- Windows:在Windows平台上,
select
函数使用的是SOCKET
类型,主要用于网络套接字的I/O操作,它本质上是一种针对网络通信的句柄。 - Linux:Linux平台中,
select
函数使用的是文件描述符(fd
),这是一个非负整数,可用于表示多种类型的文件,包括普通文件、管道、套接字、设备文件等,涵盖范围更广。
文件描述符数量限制差异
- Windows:Windows系统对
select
所处理的文件描述符(SOCKET
)数量有一定限制,通常默认为64个。虽然可以通过一些方法进行调整,但相对来说不太方便,并且过度增加可能会影响系统性能。 - Linux:Linux系统在理论上对文件描述符数量的限制较为灵活。通过修改系统参数(如
ulimit
),可以大幅提高文件描述符的上限,甚至可以根据系统资源情况进行动态调整,一般可以支持成千上万的文件描述符,更适合处理高并发的I/O场景。