当前位置:  技术问答>linux和unix

超时等待函数select怎么用阿,四个参数都代表什么意思呀

    来源: 互联网  发布时间:2015-12-01

    本文导语:  哪位大虾解释一下超时等待函数select怎么用,四个参数都代表什么意思呀,我要解决的是网络传输时长时间收不到信息自动退出接收状态。还有其它别的办法么? | select(I/O多工机制)   表...

哪位大虾解释一下超时等待函数select怎么用,四个参数都代表什么意思呀,我要解决的是网络传输时长时间收不到信息自动退出接收状态。还有其它别的办法么?

|
select(I/O多工机制)  
表头文件  #include
#include
#include
 
定义函数  int select(int n,fd_set * readfds,fd_set * writefds,fd_set * exceptfds,struct timeval * timeout);
 
函数说明  select()用来等待文件描述词状态的改变。参数n代表最大的文件描述词加1,参数readfds、writefds 和exceptfds 称为描述词组,是用来回传该描述词的读,写或例外的状况。底下的宏提供了处理这三种描述词组的方式:
FD_CLR(inr fd,fd_set* set);用来清除描述词组set中相关fd 的位
FD_ISSET(int fd,fd_set *set);用来测试描述词组set中相关fd 的位是否为真
FD_SET(int fd,fd_set*set);用来设置描述词组set中相关fd的位
FD_ZERO(fd_set *set); 用来清除描述词组set的全部位
 
参数  timeout为结构timeval,用来设置select()的等待时间,其结构定义如下
struct timeval
{
time_t tv_sec;
time_t tv_usec;
};
 
返回值  如果参数timeout设为NULL则表示select()没有timeout。
 
错误代码  执行成功则返回文件描述词状态已改变的个数,如果返回0代表在描述词状态改变前已超过timeout时间,当有错误发生时则返回-1,错误原因存于errno,此时参数readfds,writefds,exceptfds和timeout的值变成不可预测。
EBADF 文件描述词为无效的或该文件已关闭
EINTR 此调用被信号所中断
EINVAL 参数n 为负值。
ENOMEM 核心内存不足
 

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • aps.net session全面介绍(生命周期,超时时间)
  • 高手指点:听说jdk1.4能设置超时,请讲解一下?
  • 请问unix下如何设置信号量超时?
  • select() 的超时设置
  • 问connect系统调用能否显式设置超时(Solaris平台)
  • 服务器超时处理的问题,请大侠指点
  • SessionBean在事务里不会超时的吗?
  • 嵌入式Linux 如何设定 telnet超时
  • semaphore超时等待如何实现??????
  • 伪终端模式下poll超时的问题
  • epoll,socket超时如何设置?
  • 如何实现超时认证!!
  • 求教一个socket超时的问题
  • 关于Socket中connect连接host的超时问题,急!!!
  • 在servlet中如何判断网页连接超时???
  • 超时表
  • ftp/scp客户端如何限定超时?
  • 有没有什么方法使gethostbyname和connect这些行为能够超时结束?
  • asp.net 超时设置的方法介绍
  • Eclipse启动Tomcat超时问题的解决方法
  • linux怎么加检测超时程序!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3