使用select的时候得注意:该函数返回后,描述符集中任何未与就绪描述符所对应的未返回时均被清0,
为此每次调用时都得再次把所有描述符集内所关心的位均置为1。select常常犯两个编程错误,
忘了对最大描述符加1:maxfd参数指定的是待测试描述符个数,它的值是待测试的最大描述
加一,描述符0,1,2,----一直到maxfd-1都会被测试。例如设置了{1,4,5};那么maxfd = 6,因为我们
会从0开始测试,0,1,2,3,4,5是六个描述符。而max指定的就是检查个数。
忘了描述符集是值-结果(也就是输入、输出)参数。第二个错误导致调用select时,描述符集内我们认为是1的位却被置为0,。