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

标签 c linux

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

以下是我如何使用 2 个文件描述符来实现这一点。

fd_mon = (fd1 > fd2 ? fd1 : fd2) + 1;

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

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

最佳答案

使用FD_SET宏将文件描述符添加到您传递给select的集合中。您还需要它的 friend FD_ZEROFD_ISSETFD_CLR。在上面的情况下,只需继续为每个文件描述符和同一组调用 FD_SET 即可。

Google - “man select”,它甚至有一个例子!我不知道您对 *NIX 有多熟悉,但 man (手册的缩写)是操作系统内置的帮助系统。它会经常回答这些有关系统调用的问题。您可能必须在某些发行版中安装它,例如,我认为 Ubuntu 没有默认安装所有开发手册页。

关于c - Select() 监视 3 个或更多文件描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276387/

相关文章:

linux - 将 X11 窗口保持在另一个窗口之上

regex - 使用正则表达式搜索并用目录创建替换 linux 上的重命名

c - 如何在不重复除法的情况下判断一个数是否为素数

linux - 将 f06 文件的一部分复制到一个新的文本文件中

linux - 如何合并两个文件?

linux - 好奇如何指定MPI的核数才能达到最快的科学计算

C : conditional memory allocation

c - 如何设置有理数小数展开的精度等级

将 c 字符串中的字符转换为其转义序列

c - C 代码的 Visual Studio 2010 Intellisense 曲线