select函数fd isset函数的作用

select函数fd isset函数的作用

ID:11558182

大小:34.92 KB

页数:9页

时间:2018-07-12

select函数fd isset函数的作用_第1页
select函数fd isset函数的作用_第2页
select函数fd isset函数的作用_第3页
select函数fd isset函数的作用_第4页
select函数fd isset函数的作用_第5页
资源描述:

《select函数fd isset函数的作用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、select函数FDISSET函数的作用select函数FD_ISSET()函数的作用2010-07-2709:17FD_ZERO(&readfd);FD_SET(sockfd,&readfd);while(1){sin_size=sizeof(structsockaddr_in);if(select(MAX_CONNECTED_NO,&readfd,NULL,NULL,(structtimeval*)0)0){if(FD_ISSET(sockfd,&readfd)0){if((client_fd=accept(sockf

2、d,(structsockaddr*)&client_sockaddr,&sin_size))==-1){perror("accept");exit(1);}if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))==-1){perror("recv");exit(1);}if(read(client_fd,buf,MAXDATASIZE)0){perror("read");exit(1);}printf("receivedaconnection:%s",buf);}/*if*/cl

3、ose(client_fd);}/*select*/}/*while*/函数说明select()用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数readfds、writefds和exceptfds称为描述词组,是用来回传该描述词的读,写或例外的状况。底下的宏提供了处理这三种描述词组的方式:FD_CLR(inrfd,fd_set*set);用来清除描述词组set中相关fd的位FD_ISSET(intfd,fd_set*set);用来测试描述词组set中相关fd的位是否为真FD_SET(intfd,fd_se

4、t*set);用来设置描述词组set中相关fd的位FD_ZERO(fd_set*set);用来清除描述词组set的全部位参数timeout为结构timeval,用来设置select()的等待时间,其结构定义如下structtimeval{time_ttv_sec;time_ttv_usec;};返回值如果参数timeout设为NULL则表示select()没有timeout。错误代码执行成功则返回文件描述词状态已改变的个数,如果返回0代表在描述词状态改变前已超过timeout时间,当有错误发生时则返回-1,错误原因存于er

5、rno,此时参数readfds,writefds,exceptfds和timeout的值变成不可预测。EBADF文件描述词为无效的或该文件已关闭EINTR此调用被信号所中断EINVAL参数n为负值。ENOMEM核心内存不足范例常见的程序片段:fs_setreadset;FD_ZERO(&readset);FD_SET(fd,&readset);select(fd+1,&readset,NULL,NULL,NULL);if(FD_ISSET(fd,readset){…}if(select(MAX_CONNECTED_NO,&

6、readfd,NULL,NULL,(structtimeval*)0)0)return:整数值参数:第一个:这只是为了和berkleysocket兼容,可以为0第二个:可读socket集合,类型:fd_set*第三个:可写socket集合,类型:fd_set*第四个:异常socket集合,类型:fd_set*第五个:超时时间,类型:conststructtimeval*select函数:系统提供select函数来实现多路复用输入/输出模型。原型:#includesys/time.h#includeunistd.hintse

7、lect(intmaxfd,fd_set*rdset,fd_set*wrset,fd_set*exset,structtimeval*timeout);参数maxfd是需要监视的最大的文件描述符值+1;rdset,wrset,exset分别对应于需要检测的可读文件描述符的集合,可写文件描述符的集合及异常文件描述符的集合。structtimeval结构用于描述一段时间长度,如果在这个时间内,需要监视的描述符没有事件发生则函数返回,返回值为0。FD_ZERO,FD_SET,FD_CLR,FD_ISSET:参数maxfd是需要监

8、视的最大的文件描述符值+1;rdset,wrset,exset分别对应于需要检测的可读文件描述符的集合,可写文件描述符的集合及异常文件描述符的集合。structtimeval结构用于描述一段时间长度,如果在这个时间内,需要监视的描述符没有事件发生则函数返回,返回值为0。FD_ZERO,FD_SET,FD

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。