关于linux中select()函数的问题

intsockEvent=select(fd+1,&reader,NULL,NULL,&tv);在执行这句话的时候是不是程序要等待在这句话上面一直到reader里面出现可... int sockEvent = select(fd + 1, &reader,NULL, NULL, &tv);
在执行这句话的时候是不是 程序要等待 在这句话上面 一直到 reader里面 出现 可读的内容 或者 tv时间到而超时 程序 才能继续往下执行呢? 还有 read(),write()等函数 是不是 都会 让程序停下来 直到 函数完成功能或者 出现错误呢?麻烦高手 指教 本人 新手 谢谢
展开
 我来答
elesteel
2011-03-14 · TA获得超过241个赞
知道答主
回答量:89
采纳率:100%
帮助的人:0
展开全部
是的。程序会block在这里,也就是你说的等待。这里等待的意思是操作系统会切换到其他进程去执行。read() write()函数也同样。不过read() write()根据参数fd的性质,可以是non_block的。这时候,如果不能写或者没有数据可读,会立即出错返回,然后程序可以去检查errno知道发生了什么。

参考资料: unix 环境高级编程

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式