select函数fdisset函数的作用

select函数fdisset函数的作用

ID:31632485

大小:59.32 KB

页数:8页

时间:2019-01-16

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

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

1、select函数FDISSET函数的作用select函数FD_ISSET()函数的作用2010-07-2709:17FD_ZER0(&readfd);FD_SET(sockfd,&readfd);wh订c(l){sinsize二sizeof(struetsockaddrin);if(select(MAX_CONNECTED_NO,&readfd,NULL,NULL,(structtimeval*)0)0){if(FD_ISSET(sockfd,&readfd)0){if((clientfd=acccpt(sockfd,(struetsockadd

2、r*)&clientsockaddr,&sinsize))二二T){perror(/zaccept〃);exit(1);iif((rccvbytcs=rccv(clientfd,buf,MAXDATASIZE,0))==-l){perror(z,recv,z);exit(1);!if(read(client_fd,buf,MAXDATASTZE)0){perror(z,readz,);exit仃);}printf(,zreceivedacormection:%s〃,buf);}/*if*/closc(clicnt_fd);}/*select*/}

3、Awhile*/函数说明selectO用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数rcadfdsxwritcfds和cxccptfds称为描述词组,是用来回传该描述词的读,写或例外的状况。底下的宏提供了处理这三种描述词组的方式:FD_CLR(inrfd,fd_set*set);用来清除描述词组set中相关fd的位FDISSET(intfd,fd_set*set);用来测试描述词组set中相关fd的位是否为真FD_SET(intfd,fd_sct*sct);用来设置描述词组set中相关fd的位FDZERO(fdset^set)

4、;用来清除描述词组set的全部位参数timeout为结构timeval,用来设置select0的等待时间,其结构定义如structtimcvaltime_ttv_sec;time_ttv_usec;};返回值如果参数timeout设为NULL则表示select()没有timcouto错误代码执行成功则返回文件描述词状态己改变的个数,如果返回0代表在描述词状态改变前已超过limeoul时间,当有错误发生时则返冋-1,错误原因存于errno,此时参数readfds,writefds,exceptfds和timeout的值变成不可预测。EBADF文件描

5、述词为无效的或该文件已关闭EINTR此调用被信号所中断ETNVAL参数n为负值。EN0MEM核心内存不足范例常见的程序片段:fs_setreadset;FDZERO(fereadset);FDSET(fd,fereadset);select(fd+1,&readset,NULL,NULL,NULL);if(FD_ISSET(fd,readset){・・・}if(select(MAX_CONNECTED_NO,&readfd,NULL,NULL,(structtimevaU)0)0)return:整数值参数:第一个:这只是为了和berkleysoc

6、ket兼容,可以为0第二个:可读socket集合,类型:fdset*第三个:可写socket集合,类型:fd_set*第四个:异常socket集合,类型:fd_sct*第五个:超时时间,类型:conststructtimeval*select函数:系统提供select函数来实现多路复用输入/输出模型。原型:ncludesys/time.h^includeunistd・hintselect(intmaxfd,fdset*rdset,fd_set*wrset,fdset*exset,structtimeval^timeout);参数maxfd是需要监

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

8、如果在这个时间内,需要监视的描述符没有事件发生则函数返回,返回值为0。FDZERO,EDSET,FDCLR,FD1SSET:FD_ZER

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

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

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