Linux 中 select 函数问题 !!!!!!!!!!!!!!
 如下:   
 int   Fd1; 
 int   Fd2; 
 int   MaxFd   =   (Fd1   >    Fd2)   ?   Fd1   :   Fd2;   
 select   (MaxFd   +   1/*剩下的参数就不写了.*/);   
 第一个参数为什么要加这个1   
 不要告诉我这就是系统规定的,就得这么写.   
 我只是想知道原因.
------解决方案--------------------因为描述符的值是始于0的,select的第一个参数是指查看的个数。 
 假设你FD_SET的描述符值为5,则select需查看的个数为5+1即6,就是说从0查看到5号描述符。
------解决方案--------------------一般情况下,程序最大可以打开1024个描述符号,如果让select对这1024个都进行检查,毫无疑问性能比较低下。所以select中的第一个参数就是检查描述符的个数。如果你的程序里面的最大描述符是8,那么select应该检查0-8共9个描述符。也就是说该个数应该是你的最大描述符+1.