开发者社区> 问答> 正文

使用select函数时,在函数体里面用了read或recv,这俩个函数会变成非阻塞的么?

ret=select(maxfd+1,&scanfd,NULL,NULL,&tv); 

switch(ret) 
{ 
case -1: 
break; 
case 0: 
break; 
default: 
if(connect_number<0) 
break; 
for(i=0;i<CLIENTNUM;i++) 
{ 
if(connect_host[i]!=-1) 
{ 
if(FD_ISSET(connect_host[i],&scanfd)) 
{ 
if(read(connect_host[i],buffer,BUFSIZ)>0) 
{ 
    pthread_create(&tid,NULL,recv_order,(void*)&connect_host[i]); 
    pthread_detach(tid); 
    bzero(&buffer,BUFSIZ); 
} 
} 
}在这段代码中的read函数会变成非阻塞的是么?

展开
收起
a123456678 2016-06-15 14:25:24 2147 0
1 条回答
写回答
取消 提交回答
  • 这个使用和没使用select函数无关,如果你没有设置,默认read和recv是阻塞的,但是如果你设置为非阻塞,就是非阻塞。

    2019-07-17 19:39:09
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载