当前位置: 技术问答>linux和unix
(菜鸟飞飞)有哪位大牛可能给我通俗的解释下非阻塞的select么
来源: 互联网 发布时间:2016-09-07
本文导语: 他的那个fd_set。搞得很晕。能通俗的解释下select么?让我理解就行。。谢谢了! | select是为了达到多路复用,那么首先你得告诉select哪些fd是需要检测可读的,哪些是需要检测可写的 怎么做到...
他的那个fd_set。搞得很晕。能通俗的解释下select么?让我理解就行。。谢谢了!
|
select是为了达到多路复用,那么首先你得告诉select哪些fd是需要检测可读的,哪些是需要检测可写的
怎么做到这一点呢,很简单,用数组
打比方,用int fd_read[20]; 来存放可读的,用int fd_write[20]存放可写的
fd_read[0] = fd0; 就把fd0放到可读里面
如果我要再加一个fd1到fd_read,怎么写?
得通过循环,先找到没用过的数组下标,在这里是1, 然后fd_read[1]=fd1
FD_SET 做的就是这个事情
大致意思应该清楚了吧,其实FD_SET等等,就是方便大家操作的,把他当作数组就好了
可以把fd_set想成是数组,
怎么做到这一点呢,很简单,用数组
打比方,用int fd_read[20]; 来存放可读的,用int fd_write[20]存放可写的
fd_read[0] = fd0; 就把fd0放到可读里面
如果我要再加一个fd1到fd_read,怎么写?
得通过循环,先找到没用过的数组下标,在这里是1, 然后fd_read[1]=fd1
FD_SET 做的就是这个事情
大致意思应该清楚了吧,其实FD_SET等等,就是方便大家操作的,把他当作数组就好了
可以把fd_set想成是数组,