首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Select()监视3个或更多文件描述符

Select()监视3个或更多文件描述符
EN

Stack Overflow用户
提问于 2012-11-08 03:01:58
回答 4查看 434关注 0票数 2

我知道如何监控两个文件描述符,但是4或5个文件描述符呢?

下面是我如何使用2个文件描述符。

代码语言:javascript
复制
fd_mon = (fd1 > fd2 ? fd1 : fd2) + 1;

select(fd_mon, &readfds, NULL, NULL, NULL);

如何监控3个或更多的文件描述符?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-08 03:15:57

(fd1 < fd2 ? fd1 : fd2) < fd3 ? (fd1 < fd2 ? fd1 : fd2) : fd3;

它是针对3个变量的,您可以将其用于与变量一样多的变量

票数 0
EN

Stack Overflow用户

发布于 2012-11-08 03:12:46

使用FD_SET宏向传递给select的集合添加文件描述符。你还需要它的伙伴FD_ZEROFD_ISSETFD_CLR。在上面的例子中,只需为每个文件描述符和相同的文件集调用FD_SET即可。

谷歌- "man select",它甚至有一个例子!你可能必须在一些发行版中安装它,例如,我不认为Ubuntu默认安装了所有的开发手册页。

票数 2
EN

Stack Overflow用户

发布于 2012-11-08 03:14:42

您可以在打开每个描述符之后进行测试:

代码语言:javascript
复制
max_fd = 0;

fd = open(...);
if (fd > max_fd) {
  max_fd = fd;
}
....
select(max_fd+1, &readfds, NULL, NULL, NULL);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13276387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档