select 函数学习心得
1 函数原型
fd_set read, write, error;
struct timeval timeout;
int fd;
int ret
fd_set fds;
int select(int nfds, fd_set * read, fd_set * write, fd_set * error, struct timeval *timeout)//if
//if &timeout == NULL 则为阻塞函数
ret 用来放回select()的值;
if(ret < 0)
error
else if(ret == 0)
timeout;//时间到了,集合里面还是没有文件描述符发生改变
else if(ret > 0)
{
返回发生变化的文件描述符数的总和
if(FD_ISSET(fd1,&fds) == 0)//判断fd1是否真的可读可写
read(fd,buff,sizeof(buf));
if(FD_ISSET(fd2,&fds) == 0)判断fd2是否真的可读可写
一个一个。。。。。
}