select 函数的使用方法

本文介绍了一种利用select函数来监控多个文件描述符的方法。通过不断循环,利用FD_ZERO清空文件描述符集,然后遍历需要监控的文件,设置文件描述符到集合中,并找出最大的文件描述符值。当select返回就绪的文件描述符数量后,再次遍历文件描述符集,检查是否有读写事件发生,并执行相应的处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

while(1)
{
FD_ZERO(&set);
foreach(需要监控的文件)
{
fd>maxfd?fd:maxfd;
res=select(maxfd+1,&set,0,0,0);
if(FD_ISSET(listen_fd,&set))
{
newfd=accept(listenfd,&set);
array[nsock++]=newfd;
if(--res<0) continue;
}
}
foreach(需要监控的文件)
{
if(FD_ISSET(fd,&tyle="COLOR: #ff0000">set))
执行相关操作
如果错误或者关闭,则要删除该fd;将array中相应的位置和最后一个元素互换就好,nsock减1
if(--res<0) continue;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值