前面介绍了使用select函数能避免服务端关闭而客户端还在阻塞的问题, 同时也能将多进程的服务端改写成单进程就能完成多个客服端的连接. 但是使用select代替多进程服务端还有很大的问题, 比如fd_set只能支持1024个文件描述符, 对于服务器太少了.
本节介绍另一个IO多路复用函数来弥补select的个别不足.
函数原型
poll 一次能够监听的描述符个数是根据数组大小来决定的, 最大值远大于select的上限.
#include <poll.h>
int poll(struct pollfd *fdarray, unsigned long nfds, int timeout);
<